Служба Windows автоматически останавливается
Я сделал службу Window и позволю ей работать автоматически и под учетной записью localsystem, когда служба запускает это, оно вызывает это сообщение для меня, а затем останавливается
Служба [имя службы] на локальном компьютере началась, а затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.
Какая проблема и какое решение?
Ответы
Ответ 1
Либо вы не запускаете нити в методе 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
}
Ответ 2
Это конкретное сообщение об ошибке означает, что он говорит, - что ваша служба запустилась, но затем довольно скоро она вышла из по какой-то причине. Хорошей новостью является то, что ваша служба действительно что-то делает, поэтому у вас есть исполняемый файл, настроенный и работающий как служба.
После запуска по какой-то причине он уходит. Вам нужно выяснить, почему это так. Добавьте некоторую отладку, чтобы рассказать вам о ее запуске и известных случаях выхода. Если это не покажет проблему, добавьте некоторую отладку, чтобы вы знали, что она все еще работает, и откидывайтесь назад, когда это прекратится.
Ответ 3
Вы отслеживаете любую отладочную информацию? Скорее всего, во время инициализации создается исключение. Я бы проследил все ваши исключения и использовал Debugview для их просмотра.
Ответ 4
У меня была аналогичная проблема, которая произошла , потому что мои журналы событий были полными, и служба не смогла их записать. Таким образом, невозможно было отлаживать поиск сообщений в средстве просмотра событий. Я поставил try/catch и исключил исключение из файла. Я должен был изменить настройки в своих журналах, чтобы заполнить их по необходимости, а не каждые 7 дней, и это позволило начать запуск служб.
Конечно, корень проблемы для меня в том, что у меня проблема с драйвером nVidia, которая наводняет мои журналы событий, и теперь я, вероятно, избиваю диск, но это еще одна проблема.
Ответ 5
У меня была такая же проблема с JBoss, затем я изменил переменную JAVA_HOME
, она сработала для меня. Это была версия JBoss, которая не поддерживает 1.6, она поддерживает 1.5.
Ответ 6
Возможно, вам нужно запустить службу как Локальная системная учетная запись. См. этот пост Шриниваса Ганапарти.
Ответ 7
У меня была аналогичная проблема, и в моем случае оказалось, что программа просто разбилась в методе OnStart. Он попытался прочитать файл, который он не смог найти, но я полагаю, что любой другой сбой программы даст тот же результат. В случае приложения форм Windows вы получите сообщение об ошибке, но здесь это просто "ваш сервис запущен и остановлен"
Если вам когда-нибудь понадобится, например, прочитать некоторые файлы из каталога, где находится служба Windows.exe, проверьте этот раздел:
Получение полного пути для службы Windows
Ответ 8
В моем случае, метод в моем сервисе вызывался рекурсивно (так как условие завершения не было истинным), и по истечении определенного времени моя служба была остановлена.
Ответ 9
Для меня такая же проблема возникла из-за неправильной настройки в моем файле app.config
. Я изменил настройку и проблема была решена.