|
|
|
Сервис не получает уведомление о перезагрузке системы
|
|||
|---|---|---|---|
|
#18+
Всем привет! Написал сервис на Delphi 10 Seattle, все работает, но обнаружил, что сервис не получает уведомление SHUTDOWN от винды и его похоже просто убивает при ребуте. Поставил обработчик сервису OnShutdown и первым делом логирую в эвентлог, но там пусто, код не выполняется. WaitToKillServiceTimeout увеличивал, в PreshutdownOrder прописывал, правда без толку, так как нет возможности прописать SERVICE_ACCEPT_PRESHUTDOWN в ReportStatus. Никто не сталкивался? С уважением, Князев Константин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 19:38:07 |
|
||
|
Сервис не получает уведомление о перезагрузке системы
|
|||
|---|---|---|---|
|
#18+
Собственно, оказалось, что получает, но сервис EventLog уже не работает, поэтому все логирование тупо молча не работает ("спасибо" Delphi за то что ошибки LogMessage скрывает). Единственный вариант - это использовать PRESHUTDOWN, который в Delphi не реализован, пришлось копировать SvcMgr в проект и переделывать его на HandlerEx... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 09:51:11 |
|
||
|
Сервис не получает уведомление о перезагрузке системы
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 10:26:04 |
|
||
|
Сервис не получает уведомление о перезагрузке системы
|
|||
|---|---|---|---|
|
#18+
Zelius, у нас сервисы работают без вопросов. правда логгирование я сам делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 11:55:22 |
|
||
|
Сервис не получает уведомление о перезагрузке системы
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 11:59:13 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=124&tid=2041502]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 332ms |

| 0 / 0 |
