Состояние сеанса недоступно в этом контексте - In Global.asax

Я получаю сообщение "состояние сеанса, недоступное в этом контексте".

enter image description here

Ошибка вложен в параметр отправителя ряда методов в файле Global.asax:

  • Application_BeginRequest
  • Application_AuthenticateRequest
  • session_start
  • Application_Error

Ошибка происходит при загрузке первой страницы (и после этого загружаются все страницы).

Я добавил в проект совершенно новую и пустую страницу WebForm1.aspx и сделал ее своей стартовой страницей.

Вы думаете, что на пустой странице ничего не получится. Насколько мне известно, ни один мой код не выполняется, когда загружается пустая страница. Но я все еще получаю сообщение о состоянии сеанса.

Мой проект работает отлично. Не отображаются страницы ошибок. В любое время нет неправильного поведения.

Но тот факт, что эта ошибка сеанса отображается в параметре отправителя моего текущего проекта, вызывает ошибку. Эта ошибка не, сгенерированная в пустом новом проекте.

Что может быть причиной этой ошибки в моем текущем проекте?

Как я могу отслеживать, где происходит ошибка? Я не могу установить точки останова в коде ASP.NET, которые находятся под капотом. Или я могу?

Здесь моя конфигурация сеанса:

<pages enableSessionState="true" />
<sessionState mode="InProc" cookieless="false" timeout="20" />

Update:

Я только узнал, что новый пустой проект также имеет эту ошибку в объекте отправителя. Он отображается в методах Application_BeginRequest и Application_AuthenticateRequest. Но пустой проект не генерирует событие Application_Error, как и мой другой проект.

Ответ 1

Вы запрашиваете состояние сеанса слишком рано в цикле. вам нужно сделать это в Application_AcquireRequestState

Ответ 2

"Если дерево падает в лес, и никто не слышит его, звучит ли он?"

Не смотрите свойство Session в том месте, где оно еще не доступно.