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

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

Как грамотно остановить сервис? Service WinNT [D7, Win2k]


Прогер ©   (2006-08-18 15:39:00) 

После выполнения метода TServiceApplication.DoStop невозможно запустить сервис вновь. В консоли управления сервисами (службами) все кнопки ("запустить", "остановить", ...) становяться недоступными. Пробовал останавливать его if DoStop then Self.Free - результат тот же, не доступны все кнопки управления. Подскажите, как правильно остановить сервис изнутри, в программном коде. Останов нужен тогда, когда возникает некая неприодолимая ошибка - сервис детектирую подобную ситуацию должен произвести остановку.


Прогер   (2006-08-18 17:08:00) [1]

Service1.Status:=csStopped

Большое спасибо!


procedure TMyService.Stop;
begin
 if DoStop then Self.Status:= csStopped;
end;


BiN   (2006-08-18 16:26:00) [2]


> BiN ©   (18.08.06 16:19) [2]
>

> В твоем случае: Service1.Status:=csStopped
> Если не использовать SvcMgr, то см. SetServiceStatus
>

Хмм, пардон. TService вроде самостоятельно устанавливает свой статус в csStopped по завершении "служебного" потока (в процедуре DoStart).


BiN   (2006-08-18 16:19:00) [3]


> Прогер   (18.08.06 15:39)


В твоем случае: Service1.Status:=csStopped
Если не использовать SvcMgr, то см. SetServiceStatus


Чапаев   (2006-08-18 15:56:00) [4]

> В консоли управления сервисами (службами) все кнопки ("запустить",
> "остановить", ...) становяться недоступными.

Почти наверняка это означает, что сервису было отправлено сообщение об остановке, но он так и не остановился.


Наверх

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