WindowsService.exe столкнулся с проблемой и должен быть закрыт. Приносим свои извинения за неудобства - PullRequest
2 голосов
/ 01 февраля 2011

Мой сервис иногда не работает.Это не плохо, и на Windows 7 и Windows Server 2003 служба перезапускается.Но в Windows XP появляется сообщение «WindowsService.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».Я добавил свой сервис в список приложений, которые должны быть исключены из отчетов об ошибках.Не помогло - показ сообщения без «Отправить отчет» и «Не отправлять».Основная проблема в том, что в моем сервисе нет необработанного исключения.В одной dll (с неуправляемой треской) есть ошибка, и я не могу ее исправить.Как я могу настроить свой сервис так, чтобы это работало без этого массажа?Добавлено: Весь мой код в блоке try / catch.Журнал событий: «Неисправное приложение WindowsService.exe, версия 1.0.0.0, неисправный модуль .dll, адрес ошибки 0x00010616.»

Ответы [ 4 ]

2 голосов
/ 01 февраля 2011

Попытка поймать это исключение - плохая идея, нарушение доступа - довольно неприятное.Подпишитесь на событие AppDomain.CurrentDomain.UnhandledException в вашем методе Main ().В вашем обработчике событий вызовите Environment.Exit (1).Это не гарантированно для запуска, неуправляемый код мог запустить свой собственный поток.Чеснок-кросс вам нужен для этого SetUnhandledExceptionFilter (), вы должны написать это в C ++ / CLI.

0 голосов
/ 01 февраля 2011

Попробуйте обернуть проблемный код в блок try / catch, после чего вы сможете использовать данные исключений и записать их в журнал, который можно использовать для отчетов об ошибках или отладки.

Я предполагаю,вы разрабатываете в C #:

try / catch - C # Reference

0 голосов
/ 01 февраля 2011

Как правило:

  • Все прямые методы в службе Windows должны быть заключены в блок try catch
  • Все службы OnStart должны выполнять минимальные действия для запуска таймера / петлителя / опроса.
0 голосов
/ 01 февраля 2011

Вы можете поместить проблемный код в блок try / catch и зарегистрировать исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...