2009-10-27 3 views

ответ

2

см this other question

Session не не инициализирован, пока событие AcquireRequestState, поэтому любая ошибка, возникающая до этого момента не будет иметь переменные сессии доступны.

Я думаю, что то же самое относится и к HttpContext.Current в HttpContext.Current.Session

Так что да, я думаю, что HttpContext.Current иногда может быть пустым в Application_OnError

+0

@codeulike - Да, после прочтения XON-х и твое это имеет смысл, что это может быть пустым. Я не думаю, что все это продумал. Спасибо. – nickytonline

1

Я считаю, что это может произойти, если, например, вы оттягиваете рабочий поток, ответ заканчивается, а рабочий поток генерирует исключение. Ваш Application_OnError поймает исключение, но HttpContext.Current будет null.

1

В отношении IIS 7 были некоторые интересные изменения. В IIS6 у вас был HttpContext в Application_Start. Начиная с IIS7, это уже не так.

Дополнительная информация:

http://blogs.msdn.com/webtopics/archive/2009/02/12/webbaseevent-raise-method-fails-in-application-start-event-with-a-nullreferenceexception-on-iis-7-0.aspx

-Oisin

+0

@ xOn - да, я читал об этом, но больше задавался вопросом о OnError, помните, если что-то дерьмово во время запуска приложения, тогда это будет null в OnError. – nickytonline

Смежные вопросы