powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сервис не получает уведомление о перезагрузке системы
5 сообщений из 5, страница 1 из 1
Сервис не получает уведомление о перезагрузке системы
    #39560169
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Написал сервис на Delphi 10 Seattle, все работает, но обнаружил, что сервис не получает уведомление SHUTDOWN от винды и его похоже просто убивает при ребуте. Поставил обработчик сервису OnShutdown и первым делом логирую в эвентлог, но там пусто, код не выполняется. WaitToKillServiceTimeout увеличивал, в PreshutdownOrder прописывал, правда без толку, так как нет возможности прописать SERVICE_ACCEPT_PRESHUTDOWN в ReportStatus. Никто не сталкивался?

С уважением, Князев Константин
...
Рейтинг: 0 / 0
Сервис не получает уведомление о перезагрузке системы
    #39561054
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, оказалось, что получает, но сервис EventLog уже не работает, поэтому все логирование тупо молча не работает ("спасибо" Delphi за то что ошибки LogMessage скрывает). Единственный вариант - это использовать PRESHUTDOWN, который в Delphi не реализован, пришлось копировать SvcMgr в проект и переделывать его на HandlerEx...
...
Рейтинг: 0 / 0
Сервис не получает уведомление о перезагрузке системы
    #39561075
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeliusСобственно, оказалось, что получает, но сервис EventLog уже не работает, поэтому все логирование тупо молча не работает ("спасибо" Delphi за то что ошибки LogMessage скрывает). Единственный вариант - это использовать PRESHUTDOWN, который в Delphi не реализован, пришлось копировать SvcMgr в проект и переделывать его на HandlerEx...

Знание - сила.
https://answers.microsoft.com/en-us/windows/forum/windows_xp-windows_programs/windows-services-shutdown-order/32547433-9c87-483a-a6d9-8a7131c2e57e?auth=1
...
Рейтинг: 0 / 0
Сервис не получает уведомление о перезагрузке системы
    #39561150
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zelius,

у нас сервисы работают без вопросов. правда логгирование я сам делал.
...
Рейтинг: 0 / 0
Сервис не получает уведомление о перезагрузке системы
    #39561157
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WaitHint, единственное, увеличил:

Specifies the estimated time, in milliseconds, between a call from the Windows Service Control Manager and the service reporting its status.

WaitHint specifies the amount of time, in milliseconds, that can elapse between a pending start, stop, pause, or continue operation and the service setting its status with a call to the Windows API. Normally this is handled automatically. If the service performs a lengthy operation of more than WaitHint time in one of its event handlers, you should call ReportStatus method to update to the Service Control Manager.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сервис не получает уведомление о перезагрузке системы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]