Как мне объединить «Спасение» MVCContrib с Элмой? - PullRequest
0 голосов
/ 22 марта 2010

Я получил Атрибут Rescue работает. Он правильно отображает представление DefaultError, когда есть необработанное исключение.

Однако эти исключения не будут зарегистрированы или отправлены по электронной почте. На этот SO-вопрос отвечает Atif Aziz, и он выглядит довольно солидно, но он относится к встроенному атрибуту HandleErrorAttribute, который заменяет Rescue, верно? Как мне заставить это работать с Rescue? Я хочу убедиться, что в случае возникновения необработанного исключения пользователь получит представление, указанное в атрибуте Rescue, но исключение по-прежнему будет правильно зарегистрировано и доступно для просмотра с elmah.axd.

Обновление:

var currentContext = HttpContext.Current;
Elmah.ErrorSignal.FromContext(currentContext).Raise(ViewData.Model.Exception, currentContext);

Я добавил вышеизложенное в свое представление, и теперь оно правильно регистрирует и отправляет сообщения об ошибках по электронной почте. Тем не менее, не похоже, что делать это в представлении - это правильная вещь. У кого-нибудь есть идея получше?

1 Ответ

0 голосов
/ 22 марта 2010

Вы можете напрямую вызвать журнал Elmah с вашей страницы просмотра:

using Elmah;

var context = HttpContext.Current;
ErrorLog.GetDefault(context).Log(new Error(e, context));
...