![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отключение от DCOM сервера
Alex_x © (2004-06-10 11:41:00)На сервере в таск менеджере смотрю кто запустил сервер и сколько екземпляров запущено но есть подозрение что когда клиет закрыватся то еземпляр сервера запущеного им осаётся висеть и его видно в таск менеджере
Clickmaker (2004-06-15 11:48:00) [1]
> Alex_x © (10.06.04 11:52) [2]
Создаешь новый сервис (File - New - Service Application). Переносишь туда свой код, заполняешь обработчики OnStart, OnStop, OnShutdown для правильного запуска и остановки сервиса (инициализация твоих переменных/освобождение памяти и пр.). В обработчике OnExecute должно быть
while not Terminated do begin
ServiceThread.ProcessRequests(true);
end;
В dpr пишешь после begin
Installing := FindCmdLineSwitch('INSTALL', ['/'], true);
if Installing then begin
RegisterAsService(GUIDToString(Class_YourServerClass), YourServiceName);
end else begin
Installing := FindCmdLineSwitch('UNINSTALL', ['/'], true);
if Installing then begin
UnregisterAsService(GUIDToString(Class_YourServiceClass));
end;
end;
процедура RegisterAsService есть в VCL (ComObj), UnregisterAsService ниже
procedure UnregisterAsService(ClassID: string);
var Registry: TRegistry;
begin
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CLASSES_ROOT;
if Registry.OpenKey('AppID\'+ClassID, false) then
Registry.DeleteValue('LocalService');
Registry.RootKey:=HKEY_LOCAL_MACHINE;
if Registry.OpenKey('SOFTWARE\Classes\AppID\'+ClassID, false) then
Registry.DeleteValue('LocalService');
Registry.Free;
end;
JibSkeart (2004-06-10 13:41:00) [2]Не знаю как на делфях , но для этого
обычно еще и его обьяляют как синглетон (SINGLETOM)
JibSkeart (2004-06-10 13:41:00) [3]Не знаю как на делфях , но для этого
обычно еще и его обьяляют как синглетон (SINGLETOM)
Alex_x (2004-06-10 11:52:00) [4]чесно говоря незнаю как, и иногда бывают моменты что ктото подвисает и я просто удаляю екземпляр запущеный им в тамк менеджере. Можна инфу как сделать из обыкновенного ДКОМ сервера сервис?
Clickmaker (2004-06-10 11:46:00) [5]А зачем несколько экземпляров сервера? Сделай его сервисом, и пусть будет один на всех