题
这是一个奇怪的一个,但希望有人能在这里给我一个想法。我在我的应用程序将几个值到会话中Session_Start
的Global.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。当我禁用断点它随后能够加载会话状态。