Как расширить код обработки ошибок в 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);
    }
}
Другие вопросы по тегам