我在machine1中有一些Windows服务,在Machine2上运行一个Web应用程序。我需要在我的Web应用程序进程中通过C#代码重新启动machine1上的服务。实现这一目标的最佳方式是什么?
答案 0 :(得分:0)
您可以向计算机1添加另一项服务,该服务在调用时可以在同一台计算机上重新启动服务。然后从您的Web应用程序中调用它。可以找到更多信息here。
答案 1 :(得分:0)
@Mahdi提供了一个很好的方法,我也建议你这样做。
创建另一个将继续在计算机2上运行的Windows服务,并检查所需的Service
状态是Stopped
,如果发现它将立即重新启动Service
。
您可以使用ServiceController
重启服务,如下所示:
ServiceController service = new ServiceController(serviceName);
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds); //Time out to make sure if service has started correctly
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);