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