2013-10-09 81 views
3

我有一個Windows服務託管一個WCF服務。如果在我的WCF服務中出現問題,我想停止Windows服務。我可以嘗試強制它停止通過脫殼和使用淨停止,但有沒有更好的方式來做到這一點?託管WCF的Windows服務 - 我可以在WCF服務中停止Windows服務嗎?

WCF從Windows服務運行通常的方式:

protected override void OnStart(string[] args) 
{ 
    if (serviceHost != null) 
    { 
     serviceHost.Close(); 
    } 

    ///WCF service hosted 
    serviceHost = new ServiceHost(typeof(XXXService)); 


    serviceHost.Open(); 
} 
+0

http://stackoverflow.com/questions/6136457/how-to-stop-self-hosted-wcf-service-upon-unhandled-errors – Goran

+1

我想你可能想看看:http:// msdn.microsoft.com/EN-US /庫/ system.serviceprocess.servicecontroller.aspx' –

回答

1

在過去,我們已經實現了我們的自承載WCF Windows服務與持有至ServiceHost的對象的引用「服務主機控制器」類因此負責「啓動」/打開和「停止」/關閉服務主機對象。另外,「服務主機控制器」類實現了一個委託,該委託允許託管對象回調到控制器並啓動正常關閉。

相關問題