0

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

是否有任何通用方法可以在 WCF 服务层的一处和 Silverlight 应用程序的一处实现?

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

Silverlight 只收到这样的消息:

“找不到远程服务器……”

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

4

1 回答 1

1

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

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

PS。您真正的问题可能是您的服务中有超过 1000 个功能,这看起来并不健康。另一方面,如果它们是生成的函数,结果可能是喜忧参半,因为您也可以生成一些故障代码?

于 2012-09-18T20:21:16.017 回答