我在查找在我的本地机器上运行的服务时遇到了一些问题,但只有当我使用参数字符串而不是硬编码字符串(我添加它来调试问题)时。
我的方法如下所示:
public bool CheckIfServiceIsRunning(string serviceName)
{
try
{
var services = ServiceController.GetServices();
var service = services.FirstOrDefault(s => s.DisplayName == serviceName);
var test = services.FirstOrDefault(s => s.DisplayName == "MongoDB");
if (service == null)
{
return false;
}
return service.Status.Equals(ServiceControllerStatus.Running);
}
catch (InvalidOperationException ex)
{
Log.Info(ex.Message);
throw new InvalidOperationException(ex.Message);
}
}
使用参数“MongoDB”运行此代码的结果:
服务=空
test = System.ServiceProcess.ServiceController 对象与 MongoDB 服务
编辑: 使用以下比较告诉我字符串不相等:
if (string.Compare(serviceName, "MongoDB", StringComparison.Ordinal) == 0)
{
Console.WriteLine("same string");
}