Невозможно прокомментировать решение Ронни. У меня это было какое-то время, но это нарушает стандартный процесс потока ошибок и заставляет ErrorLog_Logged всегда передавать, даже когда вызывается
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
Это проблема, если вы все еще хотите регистрировать ошибку из оператора catch, например, у вас есть обходной путь для ошибки, но вы хотите зарегистрировать ошибку, чтобы выполнить правильное исправление, которое может быть очень полезно в трудных для повторяющиеся проблемы.
Мне удалось исправить это с помощью следующего изменения:
//if (customErrorsSection != null)
if (customErrorsSection != null && this.Context.Error != null)
Это правильно учитывает типичную обработку ошибок, так как context.Error будет нулевым в случаях, когда вы явным образом возбуждаете исключение в Elmah, но не равным NULL при падении через обработку ошибок по умолчанию (не через catch или если перехвачено -thrown). Это приводит к тому, что решение Ронни реагирует аналогично логике обработки ошибок .Net.