Как реализовать ELMAH в веб-приложении ASP.NET, которое использует обширные блоки try / catch? - PullRequest
1 голос
/ 13 января 2012

У нас есть приложение веб-форм ASP.NET, в котором есть блоки try / catch.В блоке catch он вызывает метод, который отправляет электронное письмо, содержащее ограниченную информацию о выданной ошибке.

Мы хотим внедрить ELMAH в этом приложении, но ELMAH работает только с необработанными исключениями (основываясь на моем опыте, внаименее).Я хотел бы вместо того, чтобы удалить все блоки try / catch из приложения, заменить код в методе, который отправляет электронное письмо, вызовом ELMAH, который заставит ELMAH отправить электронное письмо, как если бы исключение было обработано,Это будет выглядеть как обычная электронная почта с трассировкой стека, аутентифицированным пользователем, URL-адресом и т. Д.

1 Ответ

2 голосов
/ 13 января 2012

Если вы обработаете исключение, ELMAH не получит его.

ELMAH разработан не для полноценной среды ведения журналов, а для совместной работы, такой как log4net .

Вместо того, чтобы пытаться заставить ELMAH выполнять эту роль, рассмотрите возможность использования выделенной среды ведения журналов для ваших обработанных исключений.

Вы можете сигнализировать ELMAH из своего кода обработки, если вам действительно нужно, как описано в этом ответе на , обрабатывает ли elmah также и перехваченные исключения :

ErrorSignal.FromCurrentContext().Raise(ex);
...