这是一个奇怪的一个,但希望有人能在这里给我一个想法。我在我的应用程序将几个值到会话中Session_StartGlobal.asax。紧接着的Session_Start我的基地页的OnInit被调用,并尝试使用这些Session变量之一。

在怪异的一部分,有时它的工作原理,然后没有变化的开始给我这个错误:

  

“会话状态只能用于当   enableSessionState设置为true,   无论是在配置文件或中   该Page指令。还请   确定   System.Web.SessionStateModule或   自定义会话状态模块   列入   <configuration>\<system.web>\<httpModules>   在应用部分   配置。“

我看了又看,发现在该web.config使会议的所有不同的方式。下面是它看起来像现在:

<system.web>
...
    <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>

    <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
    <httpHandlers>
        <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpHandlers>
    <xhtmlConformance mode="Legacy"/>
    <pages>
    <!-- enableSessionState="true" autoEventWireup="true" enableViewState="true" enableViewStateMac="true" -->
        <controls>
            <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </controls>
    </pages>
    <httpModules>
        <!--<add name="Session" type="System.Web.SessionState.SessionStateModule"/>-->
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>
</system.web>

您可以看到我有一些东西注释掉,特别是enableSessionState="true"<add name="Session" type="System.Web.SessionState.SessionStateModule"/>,因为他们从来没有出现之前,它总是用来工作。但我跟他们尝试过同时启用,一方或另一方启用,它只是不有所作为。

这是一个应用程序,一直在生产好几年了,我只是做轻微的变化,可能其中最大的是增加一个“标题栏”页面,它和升级,从2.0到3.5。我还没有尝试过加入enableSessionState页面指令,因为它没有在web.config工作,我不明白为什么它会在页面上直接工作,我讨厌肮脏的应用程式上了或不再浪费时间白白试图启用会话。

任何人有任何其他的想法?

谢谢, 杰夫

有帮助吗?

解决方案

BREAKPOINTS!

我有断点在基本页面的构造方法设置,并且在主网页,以及将在session_start和的OnInit。甲同事删除了所有断点的调试器和问题dissappeared!

唉!

其他提示

我遇到断点同样的事情在一个变量实例和页面加载设置一些会话值。运行Windows 7 / VS2010。当我禁用断点它随后能够加载会话状态。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top