我有一个Silverlight应用程序,它与支持Silverlight的WCF服务进行通信,这两个服务都是我作为开发人员控制的。
有哪些处理WCF服务中可能发生的异常的最佳做法。
如果您只是尝试在WCF服务中抛出异常,则异常信息不会将其返回到Silverlight客户端。相反,Silverlight客户端会收到一个通用(并且具有误导性)的“未找到”异常。
我的服务方法通常会返回特定的类对象。我想到了一些方法,但很想获得替代方案。
将Exception类型属性添加到自定义类对象并检查返回值的属性。
创建一个所有方法返回的通用包装类,它具有事务详细信息(和异常详细信息),以及可以是任何对象类型的附加返回值对象。
我确实读过一些关于修改WCF服务的内容,以便在发生异常时返回详细的错误信息(相对于无用的“未找到”),但文章不完整,所以我仍然不确定工作
由于
答案 0 :(得分:2)
Silverlight 4.0确实支持故障约定的概念,但为了在客户端故障消息中可以访问异常详细信息,需要使用HTTP 200响应返回消息。以下提供了所有详细信息(请参阅标题配置WCF SOAP故障以与Silverlight客户端一起使用):
http://msdn.microsoft.com/en-us/library/ee844556(VS.95).aspx
在最佳实践方面,请查看Web服务软件工厂的Web服务体系结构指南:
http://msdn.microsoft.com/en-us/library/ff699426.aspx
具体来说,关于异常处理的主题:
http://msdn.microsoft.com/en-us/library/ff699460.aspx
这些指南都是从WCF实施的POV提供的......
答案 1 :(得分:0)