Нашли ошибку или опечатку? Выделите текст и нажмите

Поменять цветовую

гамму сайта?

Поменять
Обновления сайта
и новые разделы

Рекомендовать в Google +1

Выявление неисправностей работы служб Windows

27

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

Разработку службы лучше всего начинать с создания сборки со всеми желаемыми функциональными возможностями и тестового клиентского приложения. Тогда отладку и обработку ошибок можно производить самым обычным образом, а когда тестовое приложение будет готово, просто создать службу с использованием этой сборки. Разумеется, впоследствии со службой могут возникать и другие проблемы. Ниже приведен ряд рекомендаций:

  • Не отображайте сообщения об ошибках службы в окне сообщений (если только служба не является интерактивной, запускаемой на клиентской системе). Вместо этого следует применять службу регистрации событий, чтобы все ошибки фиксировались в журнале событий. Естественно, в клиентском приложении, где используется служба, можно отображать окно с сообщениями об ошибках для уведомления пользователей.

  • Запускать службу в отладчике нельзя, но зато отладчик можно подключить к работающему процессу службы. Для этого необходимо сначала открыть решение с исходным кодом службы и расставить точки останова, а затем в меню Debug (Отладка) в Visual Studio выбрать команду Processes (Процессы) и присоединиться к работающему процессу службы.

  • Для наблюдения за активностью служб можно применять программу Performance Monitor (Монитор производительности). Она позволяет добавлять для службы собственные объекты производительности. В результате можно получить дополнительную информацию для отладки. Например, для службы цитат можно было бы создать объект, отслеживающий общее количество возвращаемых цитат, время, затрачиваемое на инициализацию и т.д.

Службы могут сообщать об ошибках и предоставлять другую информацию, добавляя соответствующие события в журнал событий. Класс службы, унаследованный от ServiceBase, автоматически регистрирует события, когда для свойства AutoLog установлено значение true. Класс ServiceBase проверяет это свойство и добавляет в журнал запись обо всех поступающих запросах на выполнение запуска, останова, приостановки и возобновления работы службы.

Пройди тесты