【问题标题】:WCF Full Duplex Handle Client DisconnectionWCF 全双工处理客户端断开连接
【发布时间】:2010-07-28 11:36:52
【问题描述】:

我有什么方法可以检测到客户端与我的服务断开连接?我只有机会知道某个客户端是否在 try-catch 方法上断开连接,这不是一个很好的方法。我不想为连接到我的服务的每个新客户端创建一个计时器,只是为了监控它的最后一个事务。

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    不,没有简单或优雅的方法来检测客户端断开连接。如果在客户端关闭或崩溃时,服务收到“ClientTerminated”事件,那将是一个很好的环境。但是,这种行为根本不适合基于消息的架构。

    一个不太优雅的解决方案是使用回调方法定期 ping 客户端,并查看此调用是否超时。

    或者,如果您使用 PerSession 实例化,您可以将 inactivityTimeout 设置为一个较短的值(例如,一分钟而不是默认的 10 分钟),并在客户端使用计时器定期调用服务器。

    参见this question 进行类似讨论。

    【讨论】:

    • 谢谢,虽然我可以创建自己的客户端断开事件,就像 tcp 服务器的工作方式一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 2010-09-22
    • 2017-03-29
    • 2013-02-19
    相关资源
    最近更新 更多