Tags标签 网战地图
当前位置: 主页 > 网站建设 > silverlight教程 >

Silverlight调用WCF如何处理错误

2012-03-26 11:21 [silverlight教程] 来源于:
导读:Silverilght 客户端不支持 FaultException. 只会显示一个 404 错误。所 以,服务端抛出的异常,在客户端是无法直接通过序列化 /反序列化传递得到的 。但是可以

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, 也希望能分享一下。

(编辑:)

本文标签:
网友评论

栏目列表

推荐文章