Устранение неполадок исключения NullReference в службе
-
09-06-2019 - |
Вопрос
У меня есть служба Windows, которая выполняет различные операции по мониторингу системы.Однако при выполнении проверок, связанных с SNMP, я всегда получаю исключение NullReference.Код работает нормально при запуске через пользовательский интерфейс (под моим именем пользователя и паролем), но всегда вызывает ошибки при запуске службы.Я пробовал запустить службу под разными учетными записями пользователей (включая мою), но безуспешно.Я попытался заменить код мониторинга SNMP вызовом командлета PowerShell get-snmp (из /n NetCmdlets), но это привело к той же ошибке.
Приложение, с которым я работаю, ПолиМон.
Есть идеи?
Решение
Некоторые способы отладки:
- Есть ли дополнительная информация в журнале событий Windows?
- Я считаю, что вы должны иметь возможность прослушивать какое-то событие глобального исключения, например Application_Exception, в службах Windows.Я не могу вспомнить точное имя, но вы можете найти последнюю трассировку стека дампа оттуда.
- Вы сможете начать отладку проекта в сервисном режиме.
Некоторые фрагменты кода/трассировка стека/информация определенно помогут.
Другие советы
Вы можете подключить отладчик к работающему процессу перед запуском исключения.Это должно дать вам лучшее представление о том, что происходит с приложением.
Несколько вещей, которые мы видели — больше о различиях между интерактивными и сервисными услугами, но может помочь...
Одна вещь, которую мы видели, которая не кажется актуальной, — это разница между тем, что находится на пути пользователя и системы.
Еще одна вещь, которую мы видели, связана с временными файлами — наша служба создавала партии в каталоге windows emp — мы отследили это, когда он создал около 65 000 таких файлов и, таким образом, достиг предела того, что может содержать каталог. ...
С уважением, Крис
Я уже решал подобные проблемы раньше, если вы еще не нашли ответ, я предлагаю следующее:
- Включите трассировку/регистрацию во всех сторонних приложениях и библиотеках, которые вы используете, чтобы ошибки записывались в файлы, а не в стандартный вывод или стандартный поток ошибок.Часто в них вы найдете подсказку.
- Ваша служба Windows может полагаться на некоторые сетевые настройки Windows, которые должны быть установлены перед запуском.Это может быть связано с окружающей средой (PATH, как предполагали другие) или с «зависимостью» от других служб.
Джей.......