Elmah не регистрирует исключение NullReference

Добрый день,

в моем проекте установлен фреймворк elmah для регистрации исключений. На локальном хосте он работает нормально, но когда я развертываю его в производственной среде, он перестает регистрировать исключения нулевой ссылки. Все остальные исключения регистрируются (или я не узнал, что следующее не регистрируется). Я установил вход в SqlServer.

Я не могу понять, что не так, может кто-нибудь дать мне совет? (Как я сказал, он регистрирует все исключения, которые я запустил, но только это никогда не ловится)

Спасибо


person Ademar    schedule 24.11.2014    source источник
comment
Похоже, вы могли игнорировать исключения NullReferenceExceptions. Не могли бы вы поделиться своим конфигом?   -  person ThomasArdal    schedule 25.11.2014
comment
@ThomasArdal Какая часть конфига вам нужна? У меня там нет никакого фильтра. И как я уже сказал, на localhost он работает нормально (исключение нулевой ссылки обнаружено - под номером 0, но оно обнаружено)   -  person Ademar    schedule 25.11.2014
comment
Я думаю о твоей конфигурации ELMAH в web.config. Но это точно звучит странно!   -  person ThomasArdal    schedule 26.11.2014
comment
Что ж, ты был прав. У меня не было фильтра в веб-конфигурации, но он был в файле filterConfig. После смены начал работать. Спасибо за идею - ставлю вам точку :-)   -  person Ademar    schedule 27.11.2014


Ответы (1)


Что ж, Томас Ардал ответил правильно.

Проблема была в файле FilterConfig.cs. Поскольку в настройках по умолчанию он не хотел регистрировать какие-либо 500 ошибок, опасные запросы, исключения нулевых ссылок и т. Д., Я добавил следующие строки:

public class ElmahHandleErrorAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        if(filterContext.Exception is HttpRequestValidationException)
        {
            ErrorLog.GetDefault(HttpContext.Current).Log(new Error(filterContext.Exception));
        }
    }
}

и добавили эту строку в метод RegisterGlobalFilters в первую очередь.

filters.Add(new ElmahHandleErrorAttribute());

После этого он начал регистрировать некоторые исключения, но не все. Решение в том, что я удаляю условие if и ловлю все. Так что если у кого-то возникнет подобная проблема, будьте уверены, она будет где-то в фильтрах ...

person Ademar    schedule 27.11.2014