C# 如何检查windows服务是否可以启动?

C# 如何检查windows服务是否可以启动?,c#,.net,windows,service,windows-services,C#,.net,Windows,Service,Windows Services,我创建了一个程序来检查是否有任何服务被停止 但是如果我禁用服务并尝试启动服务,就会发生异常 如何检查服务是否可以启动或状态是否已禁用 我正在使用ServiceController类 守则: ServiceController service = new ServiceController("serviceName"); if (!service.Status.Equals(ServiceControllerStatus.Running)) service.Start(); 要确定服务

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

但是如果我禁用服务并尝试启动服务,就会发生异常

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

我正在使用ServiceController类

守则:

ServiceController service = new ServiceController("serviceName");

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

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

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
    }
}

检查任何东西,但<代码>运行<代码>是有问题的B/C,还有其他的状态要考虑。


检查服务是否被禁用要复杂一些。查看。

@MichaelPerrenoud netstat与启动或停止服务有什么关系?一些代码?例外情况的细节?或者你认为这是一个千里眼软件工程师的家吗?你不会想禁用该服务,一旦它被禁用,它就无法启动。您需要确保服务设置为自动启动、延迟启动或手动才能启动。打开服务,找到一个被禁用的服务,你会看到“开始”按钮是灰色的。看这个问题:我就知道你会这么说,@daveL。我认为这是最好的方式。但我甚至会那样做。谢谢。