Служба Windows не запускается после установки - PullRequest
5 голосов
/ 31 августа 2011

Ну, я создал новую службу Windows и установку из Visual Studio.

Когда я закончу установку, как я могу запустить службу?

Мне нужно что-то, что позволит мне запустить процесс, или exe .. что-то?

Установщик: Установщик Visual Studio - Проект установки.

Любая помощь?

Мой вопрос по порядку:

  1. Почему служба не запускается?

  2. Как я могу контролировать, что происходит после ввода? Где код для этого?

Спасибо!

Ответы [ 7 ]

9 голосов
/ 31 августа 2011

даже если вы установите тип запуска «Автоматический», он не запустит ваш сервис автоматически, пока машина не перезагрузится. что вы можете сделать, это создать обработчик события AfterInstall для вашего класса установщика службы и запустить службу, используя метод ServiceController Start, как показано ниже

public serviceInstaller()
{
    this.AfterInstall += new InstallEventHandler(serviceInstaller_AfterInstall);
}

void serviceInstaller_AfterInstall(object sender, InstallEventArgs e)
{
    ServiceController sc = new ServiceController(serviceInstaller.ServiceName);
    sc.Start();
}

Вы также можете создать событие, используя окно событий Visual Studio.

how to create event from VS

5 голосов
/ 31 августа 2011

для запуска службы вы можете выполнить команду:

net start YourServiceName

или перейти в Панель управления -> Инструменты администратора -> Службы, выбрать службу и нажать Пуск.

fullПуть выше также зависит от вашей фактической версии Windows.

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

0 голосов
/ 18 марта 2016

Ваша служба Windows работает в некоторых системах.Если вы столкнулись с ошибкой системы, служба Windows не запускается после установки, если вручную / автоматически.

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

  1. Обратитесь к средству просмотра событий Windows.

Просмотр событий - eventvwr.msc

Обычно это можно сделать, перейдя в диспетчер компьютеров / серверов, затем щелкнув Просмотр событий -> Журналы Windows-> Применение.Здесь вы можете увидеть, что вызвало исключение, что может помочь, но вы не получите трассировку стека. Журнал просмотра событий

Добавьте блок try / catch в метод запуска службы.

Позволяет проверить, используете ли вы какой-либо горячий код (например, «D: \»).Этот диск недоступен в установленной системе.

Это очень поможет!

0 голосов
/ 31 августа 2011

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

Однако, исходя из моего предположения,

Перейти к Visual Studio Tools => Командная строка Visual Studio используйте команду net start <>

Если не удается запустить сервисную службу, проверьте журнал событий (eventvwr.msc в диалоговом окне выполнения), чтобы увидеть, не было ли в журнале соответствующих ошибок.

0 голосов
/ 31 августа 2011

Что делает сервис? это открытие соединений SQL? ищете файл? проверьте в вашей программе просмотра событий, где служба установлена ​​на наличие ошибок, после того, как вы попытаетесь ее запустить, это поможет нам лучше понять.

0 голосов
/ 31 августа 2011

Служба windows должна быть установлена ​​(она должна сообщить вам, что делать, если вы попытаетесь ее отладить), а затем запустилась в диспетчере серверов.Тогда вы можете присоединиться к нему.

Они немного трудны для отладки, TBH.

0 голосов
/ 31 августа 2011

Установите тип запуска Автоматический в свойствах класса ServiceInstaller (это можно сделать в файле Designer).

...