RIA服务中的异常处理

2024-01-02

如您所知,建议使用带有标准 WCF 服务的FaultException 来处理异常,以隐藏异常详细信息。没关系,但我在使用 WCF Ria 服务时遇到问题。我想从域服务抛出异常,客户端将处理该异常。我想避免泄露异常的敏感信息,例如堆栈跟踪、方法名称等。如果是标准 WCF 服务,我会使用FaultException 异常,但在 Ria 服务中,它不起作用。无论我从域服务抛出哪种异常,客户端总是会收到 DomainOperationException。有什么方法可以从域服务向 silverlight 客户端抛出FaultException(不透露实际的异常详细信息)?例如,我有一个登录窗口。当用户点击登录按钮时,应该会出现多次验证失败,例如:

  • 用户名或密码无效
  • 用户帐户被锁定
  • 该帐户未激活
  • etc

我想要为每个可能发生的错误提供故障类型。客户端应该检查出了什么问题并相应地显示错误消息。我禁用了 customErrors 但没有帮助。任何帮助,将不胜感激。 谢谢


这是科林·布莱尔对我的问题的回答here http://social.msdn.microsoft.com/Forums/en-US/silverlightwcf/thread/f6fc6e4e-f81d-4988-956d-98a81862335c/

DomainService 有一个可重写的 名为 OnError 的方法。每当有 是一个例外 DomainService 本身(不在 WCF代码)异常将被传递 在重新抛出之前到 OnError 发送回客户端。如果你 替换中的异常 DomainServiceErrorInfo 传递到 OnError 方法与您自己的异常 那么你的例外将是一个 被发送回客户端。如果 您将 DomainException 用于您的 例外那么你将能够 传入一个 ErrorCode 整数,您可以 可以使用客户端来确定 实际错误。

它回答了我的问题和需求。谢谢科林。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RIA服务中的异常处理 的相关文章

随机推荐