我需要每15分钟左右检查一下我的窗口服务是否正在运行.
如果它没有运行,那么我该如何重新启动Windows服务呢?
您可以使用ServiceController检查服务是否正在运行:
ServiceController sc = new ServiceController("servicename"); if ((sc.Status.Equals(ServiceControllerStatus.Stopped)) || (sc.Status.Equals(ServiceControllerStatus.StopPending))) { // Start the service if the current status is stopped. sc.Start(); }
当然,您需要从另一个服务中调用它,或者将其创建为一个小程序,然后您可以安排每15分钟左右运行一次.
您无需额外的过程来恢复服务:
如果要确定Windows服务始终在运行,请在"恢复"选项卡中检查其属性.将所有故障操作设置为"重新启动服务"并将"重新启动服务"设置为0分钟.当您的服务消失时,它将立即重新启动.如果可以在重新启动之前等待一段时间,则增加超时:
服务恢复设置http://www.robvangroenewoud.com/images/service_recovery.png