当前位置:  开发笔记 > 运维 > 正文

如果出现故障,如何自动重新建立双工通道?

如何解决《如果出现故障,如何自动重新建立双工通道?》经验,为你挑选了0个好方法。

我正在使用WCF在.Net 3.5中开发客户端/服务器应用程序.基本上,长时间运行的客户端服务(在多台计算机上)通过netTcpBinding建立到服务器的双工连接.然后,服务器使用客户端的回调契约来执行某些按需操作,客户端以异步方式响应(我认为这是相当标准的东西).我将DuplexClientBase类子类化以处理大部分通信.

不幸的是,当两端出现问题时(例如网络故障,意外异常等),通道出现故障/中止,所有后续操作都会失败.我通过创建一个RecoveringClientBase类来解决非双工通道中的这种限制,该类在客户端出现故障并重试操作时自动获取.

所以我的问题是,有没有一种既定的方法来确定双工通道何时出现故障?我应该在服务器或客户端上检查这个位置?如果做不到这一点,我有什么选择来确保连接重新建立?

更新:我正在寻找一些特定于双工通道的建议,其中服务器可能会尝试使用出现故障的回调通道.因此,当频道发生某些事情时,我需要立即重新连接/重新订阅的内容.目前,我正在收听频道的Closing事件,如果状态不是已关闭,则重新创建它.它有点工作,但它感觉hacky ......

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有