Что останавливает (не сбивает) мой сервис Windows? - PullRequest
6 голосов
/ 27 июля 2011

У нас есть служба Windows .NET, которая иногда отключается на одном конкретном сервере, примерно три раза за последний месяц. Ведение журнала показывает, что вызывается метод OnStop, поэтому я не думаю, что служба аварийно завершает работу. Однако мы не знаем, что закрывает службу.

Есть ли способ узнать, что закрывает службу? Могу ли я войти в систему во время OnStop? Средство просмотра событий Windows просто показывает, что приложение закрыто, а в журнале безопасности не отображается ни одна учетная запись пользователя, прошедшая проверку подлинности в то время.

Служба работает в .NET 3.5 с пакетом обновления 1 (SP1) на Windows Server 2003 с пакетом обновления 2 (5.2.3790).

Нет сервисных зависимостей. Эта услуга не зависит от других услуг, и никакие другие услуги не зависят от этой услуги.

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Нет способа узнать изнутри службы, так как это вызвано из SCM - тот, кто попросил SCM остановить вашу службу, не виден службе ...

Я думаю, что вашим основным вариантом является проверка EventLog примерно в это время ... другие сервисы тоже закрываются? запускаются ли какие-либо запланированные операции и т. д.?

«Довольно грязный» вариант (в крайнем случае / отчаянном) будет состоять в том, чтобы установить для CanStop значение false ... в этом случае будет кто-то, кто увидит проблему с остановкой вашего сервиса и, надеюсь, спросит вас, почему ваш сервис не работает. останавливаемый ...

0 голосов
/ 28 июля 2011

Исходя из моего ограниченного опыта, разрешения и безопасность могут вызывать всевозможные проблемы для служб Windows.

Под какой учетной записью работает служба?(Например, системная учетная запись, сетевая служба и т. Д.).

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

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