我正在尝试将错误跟踪服务 Raygun 添加到 Orchard,但是我不确定如何拦截应用程序抛出的异常。
在默认的 ASP.NET MVC 中,它通常是通过Application_Error()
in完成的Global.asax.cs
,有没有办法在 Orchard CMS 中类似地做到这一点?
我发现这样做的唯一方法是将代码显式放入 custom ErrorPage.cshtml
.
我正在尝试将错误跟踪服务 Raygun 添加到 Orchard,但是我不确定如何拦截应用程序抛出的异常。
在默认的 ASP.NET MVC 中,它通常是通过Application_Error()
in完成的Global.asax.cs
,有没有办法在 Orchard CMS 中类似地做到这一点?
我发现这样做的唯一方法是将代码显式放入 custom 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);
}
}