托管WCF的Windows服务 - 我可以从WCF服务中停止Windows服务吗?

时间:2013-10-09 09:21:25

标签: c# wcf service

我有一个托管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();
}

1 个答案:

答案 0 :(得分:1)

过去,我们使用“服务主机控制器”类实现了我们的自托管WCF Windows服务,该类保存对ServiceHost对象的引用,因此负责“启动”/打开和“停止”/关闭服务主客体。此外,“服务主机控制器”类实现了一个委托,允许托管对象回调到控制器并启动正常关闭。