Устранение неполадок исключения NullReference в службе

StackOverflow https://stackoverflow.com/questions/48574

Вопрос

У меня есть служба Windows, которая выполняет различные операции по мониторингу системы.Однако при выполнении проверок, связанных с SNMP, я всегда получаю исключение NullReference.Код работает нормально при запуске через пользовательский интерфейс (под моим именем пользователя и паролем), но всегда вызывает ошибки при запуске службы.Я пробовал запустить службу под разными учетными записями пользователей (включая мою), но безуспешно.Я попытался заменить код мониторинга SNMP вызовом командлета PowerShell get-snmp (из /n NetCmdlets), но это привело к той же ошибке.

Приложение, с которым я работаю, ПолиМон.

Есть идеи?

Это было полезно?

Решение

Некоторые способы отладки:

  • Есть ли дополнительная информация в журнале событий Windows?
  • Я считаю, что вы должны иметь возможность прослушивать какое-то событие глобального исключения, например Application_Exception, в службах Windows.Я не могу вспомнить точное имя, но вы можете найти последнюю трассировку стека дампа оттуда.
  • Вы сможете начать отладку проекта в сервисном режиме.

Некоторые фрагменты кода/трассировка стека/информация определенно помогут.

Другие советы

Вы можете подключить отладчик к работающему процессу перед запуском исключения.Это должно дать вам лучшее представление о том, что происходит с приложением.

Несколько вещей, которые мы видели — больше о различиях между интерактивными и сервисными услугами, но может помочь...

Одна вещь, которую мы видели, которая не кажется актуальной, — это разница между тем, что находится на пути пользователя и системы.

Еще одна вещь, которую мы видели, связана с временными файлами — наша служба создавала партии в каталоге windows emp — мы отследили это, когда он создал около 65 000 таких файлов и, таким образом, достиг предела того, что может содержать каталог. ...

С уважением, Крис

Я уже решал подобные проблемы раньше, если вы еще не нашли ответ, я предлагаю следующее:

  • Включите трассировку/регистрацию во всех сторонних приложениях и библиотеках, которые вы используете, чтобы ошибки записывались в файлы, а не в стандартный вывод или стандартный поток ошибок.Часто в них вы найдете подсказку.
  • Ваша служба Windows может полагаться на некоторые сетевые настройки Windows, которые должны быть установлены перед запуском.Это может быть связано с окружающей средой (PATH, как предполагали другие) или с «зависимостью» от других служб.

Джей.......

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top