我正在尝试添加错误跟踪服务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);
}
}