如何检查Windows服务是否可以启动?

时间:2013-12-05 16:41:30

标签: c# .net windows service windows-services

我创建了一个程序来检查是否有任何服务被停止。

但如果我禁用该服务并尝试启动服务,则会发生异常。

如何检查服务是否可以启动或状态是否已禁用?

我正在使用ServiceController类。

代码:

ServiceController service = new ServiceController("serviceName");

if (!service.Status.Equals(ServiceControllerStatus.Running))
    service.Start();

1 个答案:

答案 0 :(得分:1)

要确定是否可以启动服务,请使用以下

ServiceController svc = new ServiceController("serviceName");

if  ((svc.Status.Equals(ServiceControllerStatus.Stopped)) ||
     (svc.Status.Equals(ServiceControllerStatus.StopPending)))
{
    try
    {
       svc.Start();
    }
    catch(Exception ex)
    {
       //log, abort, drink beer, etc
    }
}

检查除running以外的任何内容是有问题的b / c还有其他需要考虑的状态。

检查服务是否被禁用涉及更多。查看this SO post

相关问题