Как мне объединить “Спасение” MvcContrib с Elmah?
-
21-09-2019 - |
Вопрос
Я получил атрибут спасения работаю.Он должным образом отображает представление DefaultError при возникновении необработанного исключения.
Однако эти исключения не будут регистрироваться или отправляться по электронной почте. Это ТАКОЙ вопрос отвечает Атиф Азиз, и это выглядит довольно солидно, но это относится к встроенному атрибуту HandleErrorAttribute, который Rescue заменяет, верно?Как мне заставить это работать с Rescue?Я хочу убедиться, что в случае возникновения необработанного исключения пользователю будет отправлено представление, указанное с помощью атрибута Rescue, но исключение по-прежнему правильно регистрируется и доступно для просмотра с помощью elmah.axd.
Обновить:
var currentContext = HttpContext.Current;
Elmah.ErrorSignal.FromContext(currentContext).Raise(ViewData.Model.Exception, currentContext);
Я добавил вышеприведенное в свой просмотр, и теперь оно корректно регистрирует ошибки и отправляет их по электронной почте.Однако, не похоже, что выполнение этого в представлении является правильно вещь.У кого-нибудь есть идея получше?
Решение
Вы можете явно вызвать журнал Elmah со своей ViewPage:
using Elmah;
var context = HttpContext.Current;
ErrorLog.GetDefault(context).Log(new Error(e, context));