Как расширить код обработки ошибок в Orchard?
Я пытаюсь добавить сервис отслеживания ошибок Raygun в Orchard, однако я не уверен, как перехватить исключение, выданное приложением.
В ASP.NET MVC по умолчанию это обычно делается через Application_Error()
в Global.asax.cs
Есть ли способ сделать это аналогичным образом в Orchard CMS?
Единственный способ, которым я нашел это, это явно поместить код в пользовательский ErrorPage.cshtml
,
1 ответ
Решение
Рекомендованным способом является предоставление индивидуальной реализации 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);
}
}