Подтвердить что ты не робот

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

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

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

Какая проблема и какое решение?

4b9b3361

Ответ 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.

Ответ 7

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

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

Ответ 8

В моем случае, метод в моем сервисе вызывался рекурсивно (так как условие завершения не было истинным), и по истечении определенного времени моя служба была остановлена.

Ответ 9

Для меня такая же проблема возникла из-за неправильной настройки в моем файле app.config. Я изменил настройку и проблема была решена.