在WCF服务中处理“未找到”响应的最佳实践

时间:2010-12-06 16:36:31

标签: silverlight silverlight-4.0 wcf

我有一个Silverlight应用程序,它与支持Silverlight的WCF服务进行通信,这两个服务都是我作为开发人员控制的。

有哪些处理WCF服务中可能发生的异常的最佳做法。

如果您只是尝试在WCF服务中抛出异常,则异常信息不会将其返回到Silverlight客户端。相反,Silverlight客户端会收到一个通用(并且具有误导性)的“未找到”异常。

我的服务方法通常会返回特定的类对象。我想到了一些方法,但很想获得替代方案。

  1. 将Exception类型属性添加到自定义类对象并检查返回值的属性。

  2. 创建一个所有方法返回的通用包装类,它具有事务详细信息(和异常详细信息),以及可以是任何对象类型的附加返回值对象。

  3. 我确实读过一些关于修改WCF服务的内容,以便在发生异常时返回详细的错误信息(相对于无用的“未找到”),但文章不完整,所以我仍然不确定工作

  4. 由于

2 个答案:

答案 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)