【问题标题】:ServiceController.Stop() doesn't appear to be stopping anythingServiceController.Stop() 似乎没有停止任何事情
【发布时间】:2010-05-12 13:26:38
【问题描述】:

我的开发盒是一台 Windows 7 (x64) 机器。我有一些代码(C#、.net 2.0)在某些情况下检查服务是否正在运行然后停止它。

ServiceController matchedService = //My Service!

//If statements and such

matchedService.Stop();
matchedService.WaitForStatus(ServiceControllerStatus.Stopped);

现在,我可以验证 MyService 确实已安装并正在运行。我可以告诉你我在调试时以管理员身份运行 Visual Studio 2008。我还可以验证在几个 If 语句之后,我结束了编程的 .Stop() 和 .WaitForStatus() 部分。我确实知道,如果跳过 .Stop() 调用,服务本身就会继续运行(在 Services 中查看它,尽管我想到了也许我应该为此找一个更好的工具。我'确定有一些 sysinternals 工具可以为我提供更多信息)。当我越过 .WaitForStatus() 调用时,我基本上都在等待停止状态。 . .永远。好吧,我昨天(两次)让它在那里坐了超过 15 分钟,但没有任何反应。我们永远不会进入下一行代码。感觉就像 Bowie 的 Space Oddity(你知道我在说什么)。

关于 MyService 有很多你不知道的事情。你不会明白的事情。你做不到的事情。 . .让我清楚地说明这一点。没有服务依赖于 MyService 并且 MyService 不依赖于其他服务。 附录 MyOtherService 和 SonOfMyService 在代码中的这一点上似乎都表现正确。所有这些服务都具有相同的特征(它们是我们自己在秘密实验室中孵化的服务,没有依赖关系)。 MyService 安装是否可能有问题?

我确实知道,如果此时我停止调试,MyService 仍会在 Services 中被列为正在运行(即使在点击刷新后)。如果我尝试重新启动它(或再次运行我的应用程序并到达这一点),我会收到一条关于它无法接受控制消息的消息。之后,服务显示为已停止,我可以正常启动了。

为什么服务没有停止?这是win 7的怪癖吗?我未能理解 ServiceController 或 Win Services?

【问题讨论】:

    标签: c# .net windows-7 service servicecontroller


    【解决方案1】:

    经过进一步调查,我认为这是服务本身的问题。

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 2019-11-26
      • 2019-12-08
      • 2020-12-21
      • 2023-04-06
      • 2018-04-03
      相关资源
      最近更新 更多