RIA服务服务器端异常处理

时间:2009-12-13 17:58:00

标签: .net wcf-ria-services

我试图找到一种方法来处理服务器端的未处理异常。我希望控制域服务级别的异常处理,以便在调用任何操作时,我可以记录异常并将其包装成一些漂亮的单词以将其发送到客户端。 我找到了许多WCF和经典Web服务的方法,但没有为RIA服务提供任何方法。 请提供您的建议。

2 个答案:

答案 0 :(得分:7)

您需要覆盖此WCF RIA Services Exception Handling 博客条目中所述的 DomainService.OnError 方法。我在一个基本的DomainService类中完成了这个,而不是在我的应用程序中的每个DomainService类中完成,如下所示。 errorInfo.Error 属性没有setter,所以我认为你不能用你自己的替换异常对象,但是<system.web><customErrors mode="On" /> config元素可以防止异常的细节暴露给客户。

[EnableClientAccess()]
public class DomainServiceBase : DomainService
{
    protected override void OnError(DomainServiceErrorInfo errorInfo)
    {
        Logger.WriteException(errorInfo.Error);
        base.OnError(errorInfo);
    }
}

答案 1 :(得分:2)

您可以查找特定的错误,然后抛出一个DomainException,它与标准的DomainOperationException不同。 DomainException中有一个ErrorCode,可以在客户端上使用它来指定在客户端上以不同方式处理的条件。

见凯尔麦克莱伦在http://forums.silverlight.net/forums/t/193028.aspx的回应。 Kyle的博客也是这类问题的非常好的资源。