只有在enableSessionState设置为true时才能使用会话状态

时间:2012-11-07 20:02:51

标签: asp.net session web-config session-state

我不使用MVC,URL重写,自定义HTTP模块等。在对继承System.Web.UI.Page或System.Web.HttpContext.Current的网页的Session属性进行基本调用。会话,我收到以下错误:

只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。还请确保System.Web.SessionStateModule或自定义会话状态模块包含在应用程序配置的<configuration>\<system.web>\<httpModules>部分中。

在做了一些研究之后,我已经实现了如下的Web.config,但错误仍然存​​在。我正在使用内置的Web服务器从Visual Studio 2010调试Web应用程序。

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <sessionState mode="InProc" timeout="60" cookieless="false" />
        <pages enableSessionState="true" />
        <httpModules>
            <remove name="Session" />
            <add name="Session" type="System.Web.SessionState.SessionStateModule" />
        </httpModules>
    </system.web>
</configuration>

3 个答案:

答案 0 :(得分:3)

你的问题很简单。如果您从Session_Start全局事件之后执行的地方转移代码,那么您将看到此问题非常舒适。例如,在Page_Init事件中编写代码或覆盖OnInit,并在那里做你想做的任何事情。

希望这对你有用。

答案 1 :(得分:1)

我花了很多时间来调试这个问题。 我们的网站工作正常,直到昨天,突然停止了错误。

只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。还请确保System.Web.SessionStateModule或自定义会话状态模块包含在应用程序配置的\\部分中。

当检查服务列表中缺少ASP.net State Service时。

如下重新安装它有助于解决问题。

C:\ Windows \ Microsoft.Net \ Framework64 \ v4.0.30319 \ aspnet_regiis -i

答案 2 :(得分:0)

这个问题在我已知的情景中再现....

如果框架集或两个并行请求从浏览器中出现,如果这两个页面具有相同的自定义基页,则由于多个工作线程,访问会话导致此异常......

更新: 对于这个问题的所有患者,我在这里得到了我的发现! 1.我可以在IE浏览器(IE10)和FIREFOX(22)中重现这个问题,尽管我在本地代码中设置了所有enabled..etc.etc ...的设置很好,在连接选项卡中的IE设置 - &gt;局域网设置“使用PROXY Server for Localhost ...”复选框显示为CHECKED - 没有VALID PROXY服务器设置......

当我取消选中此内容时,在IE中,与DEFAULT会话设置相同的代码运行,如HORSE !!

希望能有所帮助,

由于