I am trying to find out a way to handle unhandled exceptions at server side. I want control over exception handling at Domain Service level so that when any operation is called then I can log the exception and wrap it in some beautiful words to send it to the client. I found many ways for WCF and classic web services but nothing for RIA services. Please provide your suggestions.
A:
You need to override the DomainService.OnError method as described in this WCF RIA Services Exception Handling blog entry. I've done this in a base DomainService class rather than in each individual DomainService class in my application as shown below. The errorInfo.Error property does not have a setter so I don't think you can replace the exception object with your own, but the <system.web><customErrors mode="On" />
config element can prevent the details of the exception being exposed to the client.
[EnableClientAccess()]
public class DomainServiceBase : DomainService
{
protected override void OnError(DomainServiceErrorInfo errorInfo)
{
Logger.WriteException(errorInfo.Error);
base.OnError(errorInfo);
}
}
Martin Hollingsworth
2009-12-16 06:12:17