Форум: "Corba";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизОтключение от 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 пишешь после beginInstalling := 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 вся ветка
Форум: "Corba";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c