本文demo已上传至github:xinyuehtx/WCFdemo
这个博客会介绍如何设置服务的异常回馈
在上一篇博客中介绍了wcf入门(9)——异常处理机制_wcf,c#_黄腾霄的博客-优快云博客如何使用错误协定回馈指定异常,但是往往会存在部分异常是非预期的。这一篇会介绍如何使用服务行为回馈未指定异常
回馈未指定异常
这里我们对上一个例子进行一些修改
首先服务接口删除错误协定
在服务实现上,设置IncludeExceptionDetailInFaults
为True
。(如果只期望在调试阶段回馈异常,可以使用ServiceDebugBehavior.IncludeExceptionDetailInFaults
代替)
并且在操作协定实现上直接抛出异常
在客户端我们这次改为捕捉FaultException
我们在客户端抓到了异常,并且在Detail
属性中找到的服务操作实际发生的异常
注意
这个例子中处理未指定异常和上一篇博客wcf入门(9)——异常处理机制_wcf,c#_黄腾霄的博客-优快云博客中处理指定异常,原理是一致的。
所以问题也是一致的,不能处理OneWay
小结
我们研究了WCF服务的IncludeExceptionDetailInFaults
,其特点有
- 可以将服务端的指定错误回馈客户端,不需要显示指定类型
- 可以配置debug模式
- 不能处理单向操作
参考链接:
- 如何:在服务协定中声明错误 - Microsoft Docs
- 定义和指定错误 - Microsoft Docs
- 在协定和服务中指定和处理错误 - Microsoft Docs
- 2019-1-29-wcf入门(9) - huangtengxiao
- wcf入门(9)——异常处理机制_wcf,c#_黄腾霄的博客-优快云博客
本文会经常更新,请阅读个人博客原文: https://xinyuehtx.github.io/ ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。