如何在WCF和Silverlight中实现故障契约/异常处理?

如何在WCF和Silverlight中实现故障契约/异常处理?,wcf,silverlight-4.0,Wcf,Silverlight 4.0,我已经开发了我的应用程序,它有1000多个功能。现在,我需要在Silverlight中实现故障契约或异常处理,而无需更改这些函数 在WCF服务层和Silverlight应用程序中,是否有任何通用方法可以在一个位置实现 我想实现这一点,因为当WCF层中发生任何异常时,它不会向silverlight发送真正的异常消息 Silverlight仅收到如下消息: “找不到远程服务器…” 真正的问题是我已经开发了这个系统,现在我需要在不改变太多或服务层中的每个功能的情况下实现falultcontracts。

我已经开发了我的应用程序,它有1000多个功能。现在,我需要在Silverlight中实现故障契约或异常处理,而无需更改这些函数

在WCF服务层和Silverlight应用程序中,是否有任何通用方法可以在一个位置实现

我想实现这一点,因为当WCF层中发生任何异常时,它不会向silverlight发送真正的异常消息

Silverlight仅收到如下消息:

“找不到远程服务器…”


真正的问题是我已经开发了这个系统,现在我需要在不改变太多或服务层中的每个功能的情况下实现falultcontracts。。那么,有什么方法可以创建falutcontract包装器并将其放置在WCF服务层上呢?

对于您的情况,我不是100%清楚,但我可以提到:

  • 如果您在Silverlight中发现异常“远程服务器未找到…”,那么无论您在服务中做什么,您都不会获得任何异常详细信息(如果Silverlight应用程序找不到该服务,该服务如何响应这些详细信息?)
  • 如果要在应用程序中查看服务的异常详细信息以进行调试,可以通过ServiceBehavior中的属性将其应用于整个服务。这被认为是一种安全风险(披露内部异常详细信息),因此不建议用于生产
  • 据我所知,必须对操作本身设置,并且在抛出它们时必须明确

另外,你真正的问题可能是你的服务中有1000多个功能,这看起来并不健康。另一方面,如果它们是由函数生成的,那么结果可能是喜忧参半,因为您可能还能够生成一些故障代码?

我已经给出了答案,但请密切注意第一个要点:服务如何做出任何响应(故障或正常响应)如果Silverlight应用程序找不到它?真正的问题是我已经开发了该系统,现在我需要在不改变太多或服务层中的每个功能的情况下实现falultcontracts。。那么,有什么方法可以创建falutcontract包装器并将其放置在WCF服务层上呢?您可能应该问一个关于“在服务上包装错误合同”的新问题,并详细解释您尝试了什么以及您想要什么。