簡體   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