Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Отключение от DCOM сервера   Найти похожие ветки 

 
Alex_x ©   (2004-06-10 11:41) [0]

На сервере в таск менеджере смотрю кто запустил сервер и сколько екземпляров запущено но есть подозрение что когда клиет закрыватся то еземпляр сервера запущеного им осаётся висеть и его видно в таск менеджере


 
Clickmaker ©   (2004-06-10 11:46) [1]

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


 
Alex_x ©   (2004-06-10 11:52) [2]

чесно говоря незнаю как, и иногда бывают моменты что ктото подвисает и я просто удаляю екземпляр запущеный им в тамк менеджере. Можна инфу как сделать из обыкновенного ДКОМ сервера сервис?


 
JibSkeart   (2004-06-10 13:41) [3]

Не знаю как на делфях , но для этого
обычно еще и его обьяляют как синглетон (SINGLETOM)


 
JibSkeart   (2004-06-10 13:41) [4]

Не знаю как на делфях , но для этого
обычно еще и его обьяляют как синглетон (SINGLETOM)


 
Clickmaker ©   (2004-06-15 11:48) [5]


> 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;



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.059 c
8-1101725343
Dufe
2004-11-29 13:49
2005.03.20
Как сделать в реалтайме обработку видео(DSPack)?


9-1104227841
Xenon
2004-12-28 12:57
2005.03.20
Вопрос про свойства объектов


1-1110045348
ser35
2005-03-05 20:55
2005.03.20
округление десятичных знаков


4-1107935853
lovres
2005-02-09 10:57
2005.03.20
Как узнать текущее разрешение экрана?


9-1103817365
Trimp
2004-12-23 18:56
2005.03.20
Вопрос по OpenGL