2009-12-06 4 views
0

Есть ли способ перезапустить службу Windows из той же службы, что и Application.Restart() в формах Windows, я не хочу запускать другой процесс из службы для перезапуска службы.Перезапустить службу Windows из службы

+1

Уже ответил здесь: http://stackoverflow.com/questions/220382/how-can-a-windows-service-programmatically-restart-itself – bobbymcr

ответ

1

Я являюсь разработчиком платформы хостинга Windows с открытым исходным кодом под названием Daemoniq. Setting service recovery options - одна из его особенностей. Вы можете скачать его с http://daemoniq.org

Текущих функций включает в себя:

  • контейнера местоположение агностика службы через CommonServiceLocator
  • набор общих свойств услуг, как SERVICENAME, DISPLAYNAME, описание и serviceStartMode через app.config
  • перспективу несколько служб Windows по одному и тому же процессу
  • набор параметров восстановления через app.config
  • набор услуг зависит от App.config через учетные данные процесса обслуживания
  • набора с помощью командной строки
  • установки, удаления, отладок служб с помощью командной строки

Спасибо!

0

Вы также можете добавить команду Custom Action to Commit для пользовательских действий в проекте настройки. Он должен быть основным выходом проекта библиотеки классов с классом, унаследованным от System.Configuration.Install.Installer с атрибутом [RunInstaller (true)]. В этом классе необходимо переопределить один базовый метод:

public override void Commit(IDictionary savedState) 
    { 
     base.Commit(savedState); 
     ProcessStartInfo psi = new ProcessStartInfo("sc", "failure \"You service name\" reset= 60 actions= restart/1000"); 
     psi.CreateNoWindow = true; 
     Process proc = Process.Start(psi); 
     proc.WaitForExit(); 
    } 

Это настроив свой сервис для перезагрузки автоматически после сбоя.

Чем, когда вам необходимо перезапустить службу вы можете сделать

Environment.FailFast("Self restarting service..."); 

Но у него есть один недостаток - он будет срабатывать сообщение об ошибке в журнале событий.

Смежные вопросы