我们如何检测WCF客户端何时断开连接?

Ric*_*ard 6 wcf

有没有办法找出WCF客户端断开连接的时间.目前唯一的方法似乎是等到服务器上客户端的呼叫最终超时.

我已经尝试订阅OperationContext.Current.Channel.Faulted事件,但遗憾的是它从未被调用过; 我的理解是,当客户端消失时,应该触发此事件.另一方面,当事件关闭时,优雅地调用OperationContext.Current.Channel.Closed.

在我们的应用程序中,我们一次只支持单个客户端连接,因此当有人关闭并重新启动客户端应用程序时,如果服务器可以知道断开连接,优雅地整理然后接受另一个连接,那将是很好的.

是的,客户端大部分时间都会优雅地断开连接,但这不能保证.目前唯一的选择似乎是轮询客户端并等待CommunicationTimeout,这并不理想.

任何建议都非常感谢.

Ral*_*ine 0

您可以使用回调操作来调用客户端以查看其是否仍处于连接状态。

看看MSDN 杂志上的这篇文章