专栏首页黄腾霄的博客2019-1-31-wcf入门(11)

2019-1-31-wcf入门(11)

本文demo已上传至github:xinyuehtx/WCFdemo

这个博客会介绍如何设置服务的异常回馈


在之前的博客2019-1-29-wcf入门(9) - huangtengxiao2019-1-30-wcf入门(10) - huangtengxiao中介绍了wpf提供的2种错误协定回馈异常的方式。

遗憾的是这2中方式都没有办法处理OneWay的情形。

这边博客介绍如何利用我们现有知识针对OneWay的情形回馈异常

回馈单向模式异常

为什么单向模式不能回馈异常

我们在2019-1-25-wcf入门(4) - huangtengxiao博客中说过,单向模式在调用服务端方法时会立刻返回。

那么当我们抛出异常时,服务端已经不知道该把异常信息回复给谁了。

所以对于单向模式,错误协定无法回馈错误信息。

如何回馈单向模式异常

还记得我们解决单向模式返回值问题的方案么?

没错就是2019-1-25-wcf入门(5) - huangtengxiao中提到的双工模式

说白了,就是添加一个传递异常信息的回调接口,在发生异常时向这个回调接口发送异常信息

我们在IFaultCallback接口中添加了一个OnError方法,传递2019-1-29-wcf入门(9) - huangtengxiao中错误协定定义的ServiceFault类型,它包含了方法和异常信息。注意ServiceFault需要能通过数据协定序列化

实现上catch所有异常,并将异常信息包装成ServiceFault发送给客户端

最后我们在客户端输出异常信息

结果如图所示,我们成功获得服务端异常信息

存在问题

既然是利用双工协定,那么必然需要一些双工协定的必要支持,例如绑定,会话,实例化等选择

这个会在一些期望添加单向模式异常反馈的现有WCF方案造成一些限制

小结

我们研究了WCF服务的单向模式异常反馈,其特点有

  • 利用双工在业务层实现
  • 有双工模式的限制
  • 能处理单向操作

参考链接:


本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/wcf%E5%85%A5%E9%97%A8-11.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2019-1-30-wcf入门(10)

    在上一篇博客中介绍了2019-1-29-wcf入门(9) - huangtengxiao如何使用错误协定回馈指定异常,但是往往会存在部分异常是非预期的。这一篇会...

    黄腾霄
  • 2020-3-22-64匹马8赛道选前8的算法解析

    可以看到例如1-8节点同dumb节点的距离都是1,9-16节点同dumb节点的距离都是1,不满足约束。

    黄腾霄
  • 2019-1-23-wcf入门(1)

    wcf - Windows Communication Foundation,是微软设计的一个构建SOA的一个应用程序框架。其主要用于解决应用程序之间的通信问题...

    黄腾霄
  • iOS面试知识总结之功能区分

    凡经历过iOS面试的我们总会发觉,即使实际开发中做过许多项目,也难免为一个普通的面试题受挫。这也许不是因为我们技术不过关,而是因为在平时我们忽略了怎样将用到的知...

    梧雨北辰
  • 2018 Cell系列相变最强综述,未来已来,你在哪?

    Trends in Cell Biology (Cell系列综述, 2018 IF: 18.564)于2018年6月1日在线发表了Steven Boeynaem...

    生信宝典
  • 全响应式web前端开发

    本文作者:IMWeb Terrance 原文出处:IMWeb社区 未经同意,禁止转载 ? Responsive web design (RWD) i...

    IMWeb前端团队
  • 马斯克、贝索斯和扎克伯格都投资的这家AI公司实现零数据迁移学习

    【新智元导读】Vicarious 是一家很神秘的 AI 初创公司,马斯克、贝索斯和扎克伯格都有投资。因为迟迟不出产品,却屡次在 NIPS、CVPR 这类顶会发表...

    新智元
  • 全响应式web前端开发

    结一老师之前有写过一篇从css角度去实现响应式的文章(下手响应式及断点设置分析),不过真正设计并实现一个全响应式网页(RWD),还需要从一开始的布局设计开始,并...

    IMWeb前端团队
  • 当时尚遇上AI!港中文MMLab开源MMFashion工具箱

    我们今天在OpenMMLab下正式开源了MMFashion这个项目的代码和预训练模型。它是一个针对视觉时尚分析(Visual Fashion Analysis)...

    代码医生工作室
  • 当时尚遇上AI!港中文MMLab开源MMFashion工具箱

    我们今天在OpenMMLab下正式开源了MMFashion这个项目的代码和预训练模型。它是一个针对视觉时尚分析(Visual Fashion Analysis)...

    CV君

扫码关注云+社区

领取腾讯云代金券