【问题标题】:how to detect WCF service shutdown or disconnect from client?如何检测 WCF 服务关闭或与客户端断开连接?
【发布时间】:2012-11-07 16:35:55
【问题描述】:

我正在构建 WCF 服务,在客户端连接到此服务后,当服务断开连接时,客户端不会注意到这一点,并且它不会触发任何操作,我想在任何时候关闭客户端表单连接丢失,那么我将如何从客户端检测 WCF 服务断开或关闭。

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    一种简单的方法是客户端将在服务中调用一个名为 IsAlive() 的简单方法,如 thread 中所述仅返回 true。

    还有另一种方法可以使用 WCF 4 附带的新 发现/公告 功能实现此目的。虽然我没有尝试过,但此功能可以帮助您让服务在以下情况下通知客户端它进入离线/关机状态。

    这是一个例子post

    你可以google“WCF公告服务”,你会得到一些很好的参考资料。

    【讨论】:

    • 是的,我以前使用过 Discovery .. 但我不认为使用 Discovery all connection live 是一个好主意.. 因为它会搜索所有服务器......如果如果连接丢失(机器关闭/电缆拔出).. 但我会检查 IsAlive() 的事情并回复你.. 谢谢你的回答:)
    【解决方案2】:

    您可能应该只设置一个计时器,该计时器将持续 ping 服务器,如果失败,则触发服务不再可用的事件。

    这个答案也有一些很好的建议。

    WCF - have client check for service availability

    【讨论】:

    • 酷,你能举一个对 wcf 服务执行 ping 操作的例子吗?
    • 在你的合约上创建一个名为 Ping 的操作,它不接受任何参数并返回 truebool。你的 ping 来了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    相关资源
    最近更新 更多