13

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

在此处输入图像描述

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

  • Application_BeginRequest
  • Application_AuthenticateRequest
  • 会话开始
  • 应用程序错误

该错误发生在第一个页面加载(以及之后的所有页面加载)上。

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

您会认为在空白页面上不会出错。据我所知,在加载空页面时,没有执行我的代码。但我仍然收到会话状态错误。

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

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

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

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

这是我的会话配置:

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

更新:

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

4

2 回答 2

25

您在周期中过早地请求会话状态。您需要在Application_AcquireRequestState中进行

于 2012-11-09T21:29:04.820 回答
4

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

不要在它不可用的时候观看 Session 属性。

于 2012-11-09T21:30:47.173 回答