WCF常见异常问题的解决方法
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要讲解了"WCF常见异常问题的解决方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"WCF常见异常问题的解决方法"吧!WCF还是比较常用的,
千家信息网最后更新 2024年11月27日WCF常见异常问题的解决方法
这篇文章主要讲解了"WCF常见异常问题的解决方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"WCF常见异常问题的解决方法"吧!
WCF还是比较常用的,于是我研究了一下WCF,在这里拿出来和大家分享一下,希望对大家有用。异常消息与特定技术有关,.NET异常同样如此,因而WCF并不支持传统的异常处理方式。如果在WCF服务中采用传统的方式处理异常,由于异常消息不能被序列化,因而客户端无法收到服务抛出的WCF异常,例如这样的服务设计:
[ServiceContract(SessionModeSessionMode = SessionMode.Allowed)] public interface IDocumentsExplorerService { [OperationContract] DocumentList FetchDocuments(string homeDir); } [ServiceBehavior(InstanceContextModeInstanceContextMode=InstanceContextMode.Single)] public class DocumentsExplorerService : IDocumentsExplorerService,IDisposable { public DocumentList FetchDocuments(string homeDir) { //Some Codes if (Directory.Exists(homeDir)) { //Fetch documents according to homedir } else { throw new DirectoryNotFoundException( string.Format("Directory {0} is not found.",homeDir)); } } public void Dispose() { Console.WriteLine("The service had been disposed."); } }
则客户端在调用如上的服务操作时,如果采用如下的捕获方式是无法获取该WCF异常的:
catch (DirectoryNotFoundException ex) { //handle the exception; }
为了弥补这一缺陷,WCF会将无法识别的异常均当作为FaultException异常对象,因此,客户端可以捕获FaultException或者Exception异常:
catch (FaultException ex) { //handle the exception; } catch (Exception ex) { //handle the exception; }
然而,这样捕获的WCF异常,却无法识别DirectoryNotFoundException所传递的错误信息。尤为严重的是这样的异常处理方式还会导致传递消息的通道出现错误,当客户端继续调用该服务代理对象的服务操作时,会获得一个CommunicationObjectFaultedException 异常,无法继续使用服务。如果服务被设置为PerSession模式或者Single模式,异常还会导致服务对象被释放,终止服务。
[ServiceContract(SessionModeSessionMode = SessionMode.Allowed)] public interface IDocumentsExplorerService { [OperationContract] [FaultContract(typeof(DirectoryNotFoundException))] DocumentList FetchDocuments(string homeDir); }
感谢各位的阅读,以上就是"WCF常见异常问题的解决方法"的内容了,经过本文的学习后,相信大家对WCF常见异常问题的解决方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
服务
问题
常见
方法
客户
客户端
方式
对象
消息
处理
学习
传统
内容
模式
错误
研究
信息
如上
尤为
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎么自己维护网络安全
共享服务器能连多少个电视上
曹妃甸区电子网络技术质量保证
麦块服务器宣传
115网络安全性升级
河池市网络安全宣传
服务器自动切换ip软件
天津蓝牙软件开发费用
网络安全专业人才技能
创逸app连接服务器超时
网络技术的发展对企业
浩云科技电力互联网
谷歌服务器位置
数据库如何管理数据库
平台软件迁移服务器步骤
多数据库系统
关于宣讲会问网络安全的问题
服务器是不是硬件机器
群晖webdav服务器安装
可用性数据库是什么意思
服务器 excel 组件
计算机网络技术基础第三版微课版
软件开发流程业务建模
洛阳app软件开发哪家技术好
数据库企业管理配置失败
网络安全法配套法规
云南衫境网络技术有限公司
转存服务器错误
qq空间的数据库如何设计
mysql数据库加字段