繁体   English   中英

ServiceController.Stop()无法停止服务

[英]ServiceController.Stop() fails to stop service

我有一个Windows服务,正在尝试使用ServiceController.Stop()停止进行编程:

ServiceController sc = new ServiceController(<ServiceName>);                    
sc.Stop();
sc.Refresh();

但是,当我在“服务”列表中看到该服务时,其状态仍保持为“已启动”。 如果我调用方法sc.WaitForStatus()等待状态更改为“已停止”,则永远不会达到此状态。

怎么了

我认为问题在于遗留代码。

我们需要一些配置,要求是如果配置文件中缺少配置,则不应启动服务。 该验证是在OnStart() 每当验证失败时,就会从OnStart()方法本身调用ServiceController.Stop() 我认为这就是为什么ServiceController.Stop()无法停止服务,并且在WaitForStatus()方法调用中我从未获得状态“ Stopped”的原因。

我更改了逻辑,现在如果缺少必要的配置, OnStart()调用ServiceBase.Run()方法(该方法调用OnStart() )。

旧代码试图从其Start方法停止服务!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM