首页 / C# / c# – 通信异常并自动重新连接?
c# – 通信异常并自动重新连接?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 通信异常并自动重新连接?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1089字,纯文字阅读大概需要2分钟。
内容图文
![c# – 通信异常并自动重新连接?](/upload/InfoBanner/zyjiaocheng/784/a47814059fa44a22bdc7f446911be8e3.jpg)
假设我有一个WCF客户端,它使用channelfactory与IIS7(TCP)中的WCF服务进行通信.如果通信中断(或服务回收),那么来自客户端的下一个调用将导致异常.
此时我需要隐藏异常,而是尝试重新连接/重新登录.
问题是,如果没有在客户端的每个ServiceAgentMethod中添加处理代码,有没有简单的方法可以做到这一点?例如,使用MessageInspector可以解决这个问题吗?
在我的例子中,我在客户端中获得了几个Agent类,它们使用从ChannelFactory创建的单个IServceInterface来运行服务方法.像这样的东西:
MyServiceAgent.GetService().GetMyObjects
GetService()将返回ChannelFactory在登录时创建的IServiceInterface.
解决方法:
我不会尝试使用message inspector;当一个通道发生故障时,它会很难发生故障(正如你所见,你会得到一个例外).它用于表示该频道不再被视为有效,并且您不应该对其进行呼叫.
您可能认为可以在传输层执行此操作,但是您需要协调其上方的层(为了转换通过线路传入的内容,您实际上无法访问它)以确定你是否有过错.
最终,您希望在调用代理的级别发出重试逻辑.拥有在您调用代理之前/之后拦截的客户端(接口)的抽象;如果有异常,您可以重试呼叫,根据需要创建新的代理/频道.
小心限制你执行的重试次数;如果你不这样做,你最终会得到一个毒丸(你的代码将无限重试).在某些时候,你会想要抛出异常.
内容总结
以上是互联网集市为您收集整理的c# – 通信异常并自动重新连接?全部内容,希望文章能够帮你解决c# – 通信异常并自动重新连接?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。