Служба 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
для меня та же проблема возникла из-за неправильной настройки в моем . Я изменил настройку, и проблема решена