Silverlight 调用 WCF 如何处理错误
来源:互联网 发布:淘宝配送地址怎么设置 编辑:程序博客网 时间:2024/05/29 23:43
Silverilght 客户端不支持 FaultException. 只会显示一个 404 错误。所以,服务端抛出的异常,在客户端是无法直接通过序列化/反序列化传递得到的。但是可以改用下列一些方法来帮助从客户端得到错误信息:
1. 在 Service 端,将返回值对象重新设计,在其中添加错误信息的字段,传递回来。
2. 在 Service 端发生异常时,捕获之,并使用 Session 存储(同时可以做日志),然后结果里 return false.
Silverlight 里判断返回 false 则去调用另一个 Service: GetLastError() 从 Session 中取出刚才保存的异常信息。
3. 修改 Service 接口,在参数里加一个 ref 参数用于返回错误信息,客户端同时判断 e.Error 和 e.Ref参数 的值。
因为项目还在开发中,目前我采用的是第三个方法,仅增加一个 ref string errorMessage 参数即可,比较简单。
另外最近在考虑的一个问题是,如何大幅度减少 WCF Service 的数量,改为设计尽量通用的服务接口。哪怕牺牲了强类型也值得,只要设计出自己的序列化/反序列化机制就行了。因为更新 WCF 引用实在是很麻烦,并且很容易出错。如果是一个业务系统,数据表很多时,按传统办法会要求做更多的 Service 来做 CRUD 操作。在这方面如果哪位朋友有好的 idea, 也希望能分享一下。
参考:
http://silverlight.net/forums/p/18852/64012.aspx#64012%20
http://silverlight.net/forums/p/19875/94861.aspx#94861
http://silverlight.net/forums/p/17944/60019.aspx#60019
http://silverlight.net/forums/p/18885/64222.aspx#64222
http://silverlight.net/forums/p/11859/38066.aspx#38066
1. 在 Service 端,将返回值对象重新设计,在其中添加错误信息的字段,传递回来。
2. 在 Service 端发生异常时,捕获之,并使用 Session 存储(同时可以做日志),然后结果里 return false.
Silverlight 里判断返回 false 则去调用另一个 Service: GetLastError() 从 Session 中取出刚才保存的异常信息。
3. 修改 Service 接口,在参数里加一个 ref 参数用于返回错误信息,客户端同时判断 e.Error 和 e.Ref参数 的值。
因为项目还在开发中,目前我采用的是第三个方法,仅增加一个 ref string errorMessage 参数即可,比较简单。
另外最近在考虑的一个问题是,如何大幅度减少 WCF Service 的数量,改为设计尽量通用的服务接口。哪怕牺牲了强类型也值得,只要设计出自己的序列化/反序列化机制就行了。因为更新 WCF 引用实在是很麻烦,并且很容易出错。如果是一个业务系统,数据表很多时,按传统办法会要求做更多的 Service 来做 CRUD 操作。在这方面如果哪位朋友有好的 idea, 也希望能分享一下。
参考:
http://silverlight.net/forums/p/18852/64012.aspx#64012%20
http://silverlight.net/forums/p/19875/94861.aspx#94861
http://silverlight.net/forums/p/17944/60019.aspx#60019
http://silverlight.net/forums/p/18885/64222.aspx#64222
http://silverlight.net/forums/p/11859/38066.aspx#38066
- Silverlight 调用 WCF 如何处理错误
- Silverlight 调用WCF常见错误
- Silverlight调用一般性处理程序模拟Silverlight调用WCF效果
- WCF调用超时,错误处理
- Silverlight调用WCF服务
- silverlight+wcf 错误
- [Silverlight] 一个易犯的错误:关于调用 WCF 服务
- Silverlight 调用WCF 远程服务器返回了错误: NotFound
- silverlight wcf 异常处理
- Silverlight处理WCF异常
- Silverlight 调用自托管的wcf 报跨域异常的处理
- Silverlight与WCF错误处理:Server Not Found
- Silverlight调用一般性处理程序模拟Silverlight调用WCF效果(2)
- VS2010 创建WCF以及SL的客户端如何调用WCF服务 教程(二): 创建调用WCF的SilverLight客户端
- Silverlight调用WCF若干问题汇总
- Silverlight调用WCF(1)
- silverlight中调用wcf服务
- 动态配置Silverlight调用WCF
- 我的 SciTE 配置文件
- ASP.NET Ajax 中 'Sys' 未定义脚本错误解决方法总结
- Error: The project file ' ' has been renamed or is no longer in the solution
- [Silverlight]摆脱对 ServiceReferences.ClientConfig 的依赖
- Silverlight 2 DataGrid 如何自定义列标题
- Silverlight 调用 WCF 如何处理错误
- [Silverlight] Mac OS 风格按钮 Style 实现的更新版(针对 Silverlight 2 RTW)
- 关于 Silverlight 2 Control Tookit 的最新消息
- Silverlight 2 终于来了!
- 加快打开XAML文件的速度
- Silverlight 的控件生命周期
- [Silverlight] UI 测试/UI 自动化相关知识
- Silverlight 2.0 RC0 发布
- IronPython for ASP.NET 的支持更新了