如何在Orchard中扩展错误处理代码



我正在尝试添加错误跟踪服务Raygun到Orchard,但是我不确定如何拦截应用程序抛出的异常。

在默认的ASP。. NET MVC通常是通过Global.asax.cs中的Application_Error()完成的,在Orchard CMS中是否有类似的方法?

我发现它的唯一方法是显式地将代码放入自定义ErrorPage.cshtml

推荐的方法是提供Orchard.Exceptions.IExceptionPolicy接口的自定义实现。在您的场景中,您可以使用默认实现DefaultExceptionPolicy作为备用方案。

例如,您可以在自定义Orchard模块中实现以下类:

[OrchardSuppressDependency("Orchard.Exceptions.DefaultExceptionPolicy")] 
public class IssueTrackerExceptionPolicy : DefaultExceptionPolicy, IExceptionPolicy
{
    bool IExceptionPolicy.HandleException(object sender, Exception exception)
    {
        // TODO: Log exception here.
        return base.HandleException(sender, exception);
    }
}

最新更新