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

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

Service Application в Delphi 7.0 [D7, WinXP]


Creator___ ©   (2005-03-05 11:29:00) 

Господа, такой вопрос. Пишу сервис в Delphi. При заргузке сервиса все в порядке. При остановке (при нажатии "Остановить" в консоле Windows) с первого раза Windows пишет, что невозможно остановить сервис, и что он не возвращал код ошибки. При повторном нажатии останавливает сразу, но Windows не видит этого и пытается еще какое-то время. То есть приходится нажимать на "остановить сервис" 2а раза подряд. Может кто сталкивался с подобным траблом и знает, как это решается. ЗЫ с другими сервисами все в порядке.


Набережных С.   (2005-03-05 16:35:00) [1]

А мне вот это понравилось

>  CoInitialize(nil);
>  ADOConnection1.ConnectionString := GetSQLConStr;
>  ADOConnection1.Connected := true;
>  CoUnInitialize;


Digitman   (2005-03-05 13:03:00) [2]


>  while not terminated do
>  begin
>    sleep(30000);
>  end;


а КТО за тебя будет обрабатывать команды и сообщения сервису ?

метод ProcessRequests - он для Пушкина ?


Creator___   (2005-03-05 11:45:00) [3]

procedure TDExServ.ServiceStart(Sender: TService; var Started: Boolean);
begin
 Started := true;
 loadopt;
 fblock := false;
 assignfile(fl,getwinpath+'\system32\dex.log');
 logbuf := TStringList.Create;
 lbIPs := TStringList.Create;
 CoInitialize(nil);
 ADOConnection1.ConnectionString := GetSQLConStr;
 ADOConnection1.Connected := true;
 CoUnInitialize;
 PopulateIPAddresses;
 StartServer;
 reportstatus;
end;

procedure TDExServ.ServiceExecute(Sender: TService);
begin
 Dexserv.Status := csRunning;
 dexserv.ReportStatus;
 while not terminated do
 begin
   sleep(30000);
 end;
 Dexserv.Status := csStopped;
 dexserv.ReportStatus;
end;


VMcL   (2005-03-05 11:35:00) [4]

Телепаты в отпуске, так что код в студию.


Наверх

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