如何使用ServiceController告诉我服务是否已注册?在下面的代码片段中,检查null DisplayName会导致System.InvalidOperationException。
有没有一种直截了当的做法让我完全失踪?
ServiceController sc = new ServiceController("TestService");
if (sc.DisplayName == null)
{
// unregistered or missing service
}
答案 0 :(得分:3)
请看下面的解决方案...... 您似乎无法......
来自docs:
您可以使用ServiceController 连接和控制的类 现有服务的行为。
必须已经注册了类似于服务的读取,以便ServiceController与它们一起使用。
我想你可以简单地捕获异常(表明该服务不存在),但这似乎并不是真的例外吗?
使用
var services = ServiceController.GetServices(machineName)
并在数组中搜索所需的服务。如果您只是在本地框上工作,则可以省略machineName
参数。