Restart Windows Service in c#

匿名 (未验证) 提交于 2019-12-03 09:06:55

问题:

I got a link from SO Cannot restart a Service where it says to restart the windows service.

The way it should restart the service is mentioned in the question as

public static void RestartService(string serviceName, int timeoutMilliseconds) {     ServiceController service = new ServiceController(serviceName);      int millisec1 = Environment.TickCount;     TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);     if (!(service.Status.Equals(ServiceControllerStatus.Stopped) || service.Status.Equals(ServiceControllerStatus.StopPending)))     {         service.Stop();         service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);     }     // count the rest of the timeout     int millisec2 = Environment.TickCount;     timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2 - millisec1));      if (!(service.Status.Equals(ServiceControllerStatus.Running) || service.Status.Equals(ServiceControllerStatus.StartPending)))     {         service.Start();         service.WaitForStatus(ServiceControllerStatus.Running, timeout);     } } 

But i am not sure here, as to where to write the code. I need to restart the windows service as soon as that is installed from my application

Let me know if any input is needed.

Thanks!

回答1:

I simply use net start and net stop to restart services. Example:

using System.Diagnostics;  public static void RestartService(string serviceName) {     var psi = new ProcessStartInfo("net.exe", "stop " + serviceName);     psi.WindowStyle = ProcessWindowStyle.Hidden;     psi.UseShellExecute = true;     psi.WorkingDirectory = Environment.SystemDirectory;     var st = Process.Start(psi);     st.WaitForExit();      psi = new ProcessStartInfo("net.exe", "start " + serviceName);     psi.UseShellExecute = true;     psi.WindowStyle = ProcessWindowStyle.Hidden;     psi.WorkingDirectory = Environment.SystemDirectory;     st = Process.Start(psi);     st.WaitForExit(); } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!