2013-10-09 65 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的对象的引用“服务主机控制器”类因此负责“启动”/打开和“停止”/关闭服务主机对象。另外,“服务主机控制器”类实现了一个委托,该委托允许托管对象回调到控制器并启动正常关闭。

相关问题