Хорошо, я понял это.
Оказывается, что в моем собственном классе ElmahHandleErrorAttribute метод OnException () действительно перегружен (как и должно быть). Но 1-ой строкой кода является «MyBase.OnException (context)», который запустит то, что также выполняет атрибут HandleError.
Как только я прокомментировал эту строку, моя проблема ушла.
В чем проблема?
У меня есть Elmah.Mvc, реализованный в этом проекте Mvc4, он прекрасно работает. У меня также есть пользовательский раздел ошибок в Web.config следующим образом:
<customErrors mode="On" defaultRedirect="~/Error/General">
<error statusCode="404" redirect="~/Error/Http404" />
</customErrors>
У меня есть ErrorController с двумя методами действия, один для «General», а другой для «Http404».
То, что происходило, было, если бы я поднял необработанную ошибку, я действительно получил бы свое возбужденное исключение, зарегистрированное в Elmah, электронное письмо, доставленное с исключением, и затем отображался пользовательский "Общий" вид (страница Http404, если это была ошибка 404 ).
НО, что я также получил, было зарегистрировано дополнительное исключение И электронная почта, потому что не найден файл по умолчанию «Error.vbhtml» (я удалил это представление).
Честная ошибка ... надеюсь, это поможет кому-то двигаться вперед. :)