WCF常见异常问题的解决方法
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要讲解了"WCF常见异常问题的解决方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"WCF常见异常问题的解决方法"吧!WCF还是比较常用的,
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
华坤网络技术有限公司
洛阳庞村快递柜软件开发
数据库怎样将两个表关联
window文件服务器
多台电脑共用一个数据库
网站软件开发下什么费用
安卓软件开发范例
贵阳金蝶eas软件开发公司
影院服务器RAID阵列重做
网络技术服务业实习内容写什么
软件开发培训靠谱不先学后交钱
软件开发可行性报告分析
昌都网络技术哪家专业
数据库的最高性能是什么
市占率第一的网络安全股
王者如何开语言服务器
微信支付后怎么修改数据库
埃尔文海耶斯NBA数据库
数据库查询不在表里的数据
网络安全阿曼太
佛山网络安全防护
福建省网络安全排名
工业网络技术控制国内外研究现状
mc1.0服务器
最便宜的虚拟服务器
数据库应用技术孙晨霞主编
开展 网络安全教育活动总结
电脑服务器远程协助
明确保证网络安全的
数据库设计实现教材