Session 会话状态在此上下文中不可用-在Global.asax中

Session 会话状态在此上下文中不可用-在Global.asax中,session,state,global-asax,Session,State,Global Asax,我收到“会话状态在此上下文中不可用”错误 该错误嵌套在Global.asax文件中许多方法的sender参数中: 应用程序启动请求 应用程序验证请求 会话(u)开始 应用程序错误 错误发生在第一次页面加载时(以及之后的所有页面加载) 我在项目中添加了一个全新的空页面WebForm1.aspx,并将其作为我的起始页 你会认为在一个空白的页面上不会出现任何问题。在我看来,当加载一个空页面时,没有执行我的代码。但是我仍然得到会话状态错误 我的项目做得很好。没有显示错误页面。任何时候都没有不正确的

我收到“会话状态在此上下文中不可用”错误

该错误嵌套在Global.asax文件中许多方法的sender参数中:

  • 应用程序启动请求
  • 应用程序验证请求
  • 会话(u)开始
  • 应用程序错误
错误发生在第一次页面加载时(以及之后的所有页面加载)

我在项目中添加了一个全新的空页面WebForm1.aspx,并将其作为我的起始页

你会认为在一个空白的页面上不会出现任何问题。在我看来,当加载一个空页面时,没有执行我的代码。但是我仍然得到会话状态错误

我的项目做得很好。没有显示错误页面。任何时候都没有不正确的行为

但是,这个会话错误出现在我当前项目的sender参数中,这一事实让我感到困惑。此错误不是在空白的新项目中生成的

我当前项目中出现此错误的原因可能是什么

如何跟踪错误发生的位置?我无法在隐藏的ASP.NET代码中设置断点。或者我可以吗

以下是我的会话配置:

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

更新:


我刚刚发现一个全新的空白项目在sender对象中也有这个错误。它在Application_BeginRequest和Application_AuthenticateRequest方法中可见。但是空白项目并没有像我的其他项目那样生成AppultIsError事件。

您在循环中过早请求会话状态。您需要在应用程序状态下执行此操作。

“如果一棵树倒在森林中,周围没有人听到它,它会发出声音吗?”


不要在会话属性不可用时查看它。

我没有请求任何内容。在发送方对象中看到此错误之前,没有执行我的代码。请注意,列出的方法还包括应用程序错误方法。肯定会产生错误。我不知道它从哪里来。这应该是答案。这就是我们在之前的任何事件中都没有得到SessionState的原因。谢谢,这在与OP完全相同的情况下解决了我的问题。+1我没有。在会话启动事件触发后触发的应用程序启动请求事件仍显示错误。然后是触发的应用程序错误事件。再一次加载空白页时会发生此错误,如您所见,应用程序启动中没有可能导致此错误的代码。Jay,您是否得到了此问题的答案?不确定多年前我是否设法解决了此问题。不知道为什么我接受了标记为答案的帖子,作为答案。从那以后,我一直在向前走。