使用服务控制器从Web应用程序重新启动远程服务器上的Windows服务?

时间:2016-10-25 10:31:52

标签: c# .net windows-services

我在machine1中有一些Windows服务,在Machine2上运行一个Web应用程序。我需要在我的Web应用程序进程中通过C#代码重新启动machine1上的服务。实现这一目标的最佳方式是什么?

2 个答案:

答案 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);