Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отключение от 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]

А зачем несколько экземпляров сервера? Сделай его сервисом, и пусть будет один на всех


Наверх

Титульная страница Поиск, карта сайта Написать письмо