Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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 пишешь после 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 вся ветка

Форум: "Corba";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.079 c
14-1109196159
Случайно забредший
2005-02-24 01:02
2005.03.20
Где там галочку поставить, чтоб ехешник работал без Дельфи?


10-1086853316
Alex_x
2004-06-10 11:41
2005.03.20
Отключение от DCOM сервера


4-1107341470
alpet
2005-02-02 13:51
2005.03.20
Быстрое снятие задачи.


1-1109831333
Veles
2005-03-03 09:28
2005.03.20
Преобразование в HEX


14-1109342839
Rouse_
2005-02-25 17:47
2005.03.20
Маленькое ММР





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский