我收到的'会话状态在此上下文中不可用'错误。
错误嵌套在Global.asax文件中的许多方法的sender参数中:
错误发生在第一页加载(以及之后的所有页面加载)。
我在项目中添加了一个全新的空页WebForm1.aspx,并将其作为我的起始页。
您认为空白页上没有任何问题。在加载空白页面时,根据我的意见,没有执行我的代码。但我仍然遇到会话状态错误。
我的项目完全正常。没有显示错误页面。任何时候都没有不正确的行为。
但是这个会话错误出现在我当前项目的sender参数中的事实让我感到困惑。在空白的新项目中生成此错误
。我当前项目中可能导致此错误的原因是什么?
如何追踪错误发生的位置?我无法在ASP.NET代码中设置引擎的断点。或者我可以吗?
这是我的会话配置:
<pages enableSessionState="true" />
<sessionState mode="InProc" cookieless="false" timeout="20" />
更新
我刚发现一个全新的空白项目在发件人对象中也有此错误。它在Application_BeginRequest和Application_AuthenticateRequest方法中可见。但是空白项目没有生成Application_Error事件,就像我的其他项目一样。
答案 0 :(得分:23)
您在周期中过早地请求会话状态。您需要在 Application_AcquireRequestState
中执行此操作答案 1 :(得分:4)
“如果一棵树落在森林里,周围没有人听到它,它会发出声音吗?”
不要在会话属性不可用时观看它。