我有一个使用WCF与gui通信的Windows服务。不幸的是,当我想从gui重新启动服务(重新加载配置)时,我收到消息:
IP端点0.0.0.0:1111
上已有监听器
我正在使用以下代码重新启动服务:
if (sc.Status == ServiceControllerStatus.Running)
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped);
sc.Start();
}
问题是服务控制器已经停止状态,WCF仍然没有释放端口。我怎么能等待这种情况发生呢?
答案 0 :(得分:1)
我一直在努力解决同样的问题。在OnStop方法中,我调用ServiceHost的Close()方法,然后将服务主机本身设置为null。
到目前为止,这样做只会使问题消失......到目前为止。