区分同名的 Windows 服务?

Dan*_*iel 1 c# windows-services

我正在开发一个与 Windows 服务进行交互的应用程序。我使用ServiceController 类来处理交互,但我想知道如果遇到两个同名的服务会发生什么。

在文档中提供的示例代码中,它们按名称寻址服务,如下所示:

foreach (ServiceController scTemp in scServices)
  if (scTemp.ServiceName == "Simple Service"){  /* Do Work */ }
Run Code Online (Sandbox Code Playgroud)

我没有看到任何要求ServiceName是唯一的规定。如果两个服务名称相同,但用户只想与其中之一交互,我该如何处理?

Cod*_*ter 5

根据CreateService文档,服务名称必须是唯一的:

ERROR_DUPLICATE_SERVICE_NAME

显示名称已作为服务名称或另一个显示名称存在于服务控制管理器数据库中。