Запустить .NET Services из командной строки

Как запускать службы .NET из командной строки? net start "Пример службы" не работает.


person Community    schedule 17.08.2009    source источник


Ответы (4)


Службы не должны запускаться из командной строки. Сначала зарегистрируйте его (installutil / i service_path), затем начните с net start или sc start.

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

person Ivan G.    schedule 17.08.2009
comment
+1 за комментарий о наличии основной точки входа в проект для НАЧАЛЬНОЙ РАЗРАБОТКИ. Как говорит Иван, служба может вести себя по-разному при запуске в качестве службы (разные учетные данные). - person Eric J.; 17.08.2009
comment
Каждая служба, которую я когда-либо писал, поддерживает параметр командной строки, который позволяет запускать ее как приложение в режиме консоли. Я использую / бегаю, но что бы вы ни использовали, я полностью рекомендую этот тип шаблона. Это сэкономит вам часы утомительной отладки. - person Mark; 17.08.2009

Попробуйте использовать sc start

person SwDevMan81    schedule 17.08.2009

Убедитесь, что вы добавили установщик в службу Windows. Это необходимо сделать для того, чтобы утилита InstallUtil.exe работала. Вы можете увидеть, как это сделать, здесь.

После добавления установщика InstallUtil.exe можно использовать для установки и удаления службы.

  • Установить: InstallUtil.exe <YourServiceExecutable>
  • Удалить: InstallUtil.exe /u <YourServiceExecutable>

Чтобы запустить и остановить службу, используйте решение Reed.

Если вы хотите пофантазировать, вы можете добавить в свою службу некоторую логику командной строки, которая позволит вам делать все это (установка и запуск / остановка и удаление) непосредственно из вашей службы, т. Е. Вы выиграли. Мне больше не нужно использовать InstallUtil.exe. Это решение здесь.

person Matt Davis    schedule 18.08.2009

Вы можете запустить или остановить службу, позвонив:

net start "Service Name"
net stop "Service Name"

Подробнее см. в этой технической статье.

Это должно сработать, если верно следующее:

  • Командная строка / пользователь имеет соответствующие разрешения для запуска службы. Это потребуется для ЛЮБОГО решения.
  • Сервис правильно установлен и зарегистрирован в системе. Я подозреваю, что это может быть виноватым. Указана ли услуга в списке услуг?
person Reed Copsey    schedule 17.08.2009