WCF常见异常问题的解决方法
发表于:2024-10-14 作者:千家信息网编辑
千家信息网最后更新 2024年10月14日,这篇文章主要讲解了"WCF常见异常问题的解决方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"WCF常见异常问题的解决方法"吧!WCF还是比较常用的,
千家信息网最后更新 2024年10月14日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安全错误
数据库的锁怎样保障安全
改成网络安全大赛
内网服务器集中管理
苹果itunes数据库
泉州玖耀网络技术有限公司
北京紫博蓝网络技术...
判断数据库字段为空
固原软件开发收费
数据库 内存
数据库营销理论日常生活的应用
网络安全群聊犯法吗
pc微信数据库密码
网络安全法第44条罚款
医药企业关注的大数据库
甘肃服务器机柜品牌云主机
监控网络安全培训
湖南推理服务器供应厂家
如何评价软件开发的时间
服务器上安全验证图看不到
数据库不安全存储
国家电网的网络安全意识
富士康有什么软件开发
县里网络安全宣传周活动总结
小学生网络安全知识 题库
游戏必备数据库
网络安全信息审查
黑龙江dns服务器云主机
泰州网络安全宣传视频
救生艇服务器
无锡安腾软件开发有限公司
数据库有多少个模块