2

如何使用 ServiceController 告诉我服务是否已注册?在下面的代码片段中,对空 DisplayName 的检查会导致 System.InvalidOperationException。

有没有一种我完全想念的直接方法?

ServiceController sc = new ServiceController("TestService");

if (sc.DisplayName == null)
{
     // unregistered or missing service
}
4

1 回答 1

3

看看下面的解决方案...... 看起来你不能......

文档

您可以使用 ServiceController 类连接到现有服务并控制其行为。

读起来像服务必须已经注册,以便 ServiceController 可以使用它们。

我想您可以简单地捕获异常(表明该服务不存在),但这似乎并不是真正的异常,不是吗?

解决方案:

采用

var services = ServiceController.GetServices(machineName)

并在阵列中搜索您需要的服务。如果您只是在本地盒子上工作,则可以省略该machineName参数。

http://msdn.microsoft.com/en-us/library/s21fd6th.aspx

于 2009-10-13T15:16:30.127 回答