Служба Windows автоматически останавливается

Я сделал службу окна и позволил ей работать автоматически и под учетной записью localsystem, когда служба запускается, она запускает это сообщение для меня, а затем останавливается

служба [имя службы] на локальном компьютере запущена, а затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.

в чем проблема и какое решение?

8 ответов


либо вы не запускаете никаких потоков в методе OnStart для выполнения работы, либо в вашем методе OnStart возникает исключение.

если возникнет исключение, оно появится в журнале событий Windows. Журнал событий Windows-хорошее место для начала в любом случае.

обычно метод OnStart выглядит следующим образом:

Thread _thread;

protected override void OnStart(string[] args)
{
    // Comment in to debug
    // Debugger.Break()

    // Do initial setup and initialization
    Setup();

    // Kick off a thread to do work
    _thread = new Thread(new MyClass().MyMethod)
    _thread.Start();

    // Exit this method to indicate the service has started
}

Это конкретное сообщение об ошибке означает, что оно говорит-что ваш сервис начал а то довольно скоро он вышел из по какой-то причине. Хорошей новостью является то, что ваша служба на самом деле делает что-то, таким образом, исполняемый файл настроен и работает как служба должным образом.

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


вы прослеживая любой отладочной информации? Скорее всего, во время инициализации создается исключение. Я бы отследил все ваши исключения и использовал Debugview для их просмотра.


У меня была аналогичная проблема, которая произошла потому что мои журналы событий были полны и служба не смогла написать им. Таким образом, было невозможно отлаживать, ища сообщения в средстве просмотра событий. Я поставил try / catch и сбросил исключение в файл. Мне пришлось изменить настройки в моих журналах, чтобы заполнить по мере необходимости, а не каждые 7 дней, и это позволило запустить службы.

конечно, корень проблемы для меня в том, что у меня есть драйвер nVidia проблема, которая наводняет мои журналы событий, и теперь я, вероятно, бьюсь на диске, но это еще одна проблема.


Возможно, вам нужно запустить службу как Учетная Запись Локальной Системы. См.этот пост Шриниваса Ганапарти.


У меня была та же проблема, начиная с JBoss, затем я изменил JAVA_HOME переменная, это сработало для меня. Это была версия JBoss, которая не поддерживает 1.6, она поддерживает 1.5.


У меня была аналогичная проблема, и в моем случае оказалось, что программа просто разбилась в методе OnStart. Он попытался прочитать какой-то файл, который не смог найти, но я полагаю, что любой другой сбой программы даст тот же результат. В случае приложения Windows forms вы получите сообщение об ошибке, но здесь это было просто "ваша служба запущена и остановлена"

Если вам когда-нибудь понадобится, как я, чтобы прочитать некоторые файлы из каталога, где служба Windows .exe находится, проверьте это тема: получение полного пути для службы Windows


для меня та же проблема возникла из-за неправильной настройки в моем . Я изменил настройку, и проблема решена