从代码中退出IIS Express中的WCF服务

时间:2017-09-18 06:54:19

标签: c# wcf iis-express

就像我在标题中所说的那样,当我们关闭客户端应用程序时,我们如何退出该服务(与客户端应用程序一起启动)?我尝试调用_serviceClient.CloseAsync(),但IIS Express中的服务仍然存在。那么我们有什么办法吗?

更新 我的服务是处理相机并将图像流式传输到客户端。因此,如果我不退出服务,它将保持相机,直到我们手动将其从IIS关闭。所以我想把两个方面关在一起。

我在应用程序的关闭动作中处理了释放相机功能。但有时意外,应用程序崩溃,因此代码不会运行。

1 个答案:

答案 0 :(得分:1)

当发件人不知道侦听器被终止时,通常会出现此问题。例如,在UDP流媒体中。

一种解决方案是让监听器发送“心跳”消息以指示它仍然存在并以某个间隔收听。如果不再接收到心跳,服务器可以断定客户端因任何原因和免费资源不再监听(停止流,释放摄像头......)。

请注意UDP不可靠,因此单个心跳可能会丢失。你必须看看心跳频率和“缺失节拍” - 容差的完美配置究竟是什么对你和网络都有效。

一种常见的模式是实现一种协议,其中客户端必须向服务器发送“确认”消息以指示收到的包(因为流的UDP包也可能需要重新发送)。