2009-06-25 12 views
1

Dies ist ein komisches, aber hoffentlich kann mir jemand hier eine Idee geben. Ich setze ein paar Werte in die Sitzung in der Session_Start der Global.asax in meiner App. Unmittelbar nach der Session_Start wird meine Basis-Seite OnInit aufgerufen und versucht, eine dieser Session Variablen zu verwenden..NET-Sitzung funktioniert nicht

Der seltsame Teil ist manchmal funktioniert es, und dann, nachdem keine Änderungen startet mir diesen Fehler geben:

"Session state can only be used when enableSessionState is set to true , either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration."

Ich habe gesucht und gesucht zur Aktivierung Sitzung in den web.config alle verschiedenen Wege zu finden. Hier ist, wie es jetzt aussieht:

<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> 

Sie können sehen, ich ein paar Sachen haben kommentiert aus, speziell die enableSessionState="true" und <add name="Session" type="System.Web.SessionState.SessionStateModule"/>, weil sie noch nie dort waren und es immer gearbeitet. Aber ich habe es mit beiden aktiviert, die eine oder andere aktiviert, es macht einfach keinen Unterschied.

Dies ist eine App, die seit Jahren in Produktion ist, ich mache nur geringfügige Änderungen, wahrscheinlich die größte davon ist Hinzufügen einer "Titelleiste" Seite, und ein Upgrade von 2.0 auf 3.5. Ich habe nicht versucht, die enableSessionState zu den Seitendirektiven hinzuzufügen, weil es in der web.config nicht funktionierte Ich sehe nicht, warum es direkt auf der Seite arbeiten würde, und ich würde hassen, die App mehr zu beschmutzen oder mehr Zeit zu verschwenden vergeblich versuchen, die Sitzung zu ermöglichen.

Wer hat noch andere Ideen?

Danke, Jeff

+0

Führen Sie dies in IIS 6 oder IIS 7 aus? – marcc

+0

Lokal IIS6, auf Test und Produktion IIS7. –

+0

Scheitert dies in IIS6 und IIS7? – Kev

Antwort

6

Haltepunkte!

Ich hatte Haltepunkte in den Konstruktormethoden der Basisseite und der Hauptseite sowie Session_Start und OnInit gesetzt. Ein Mitarbeiter löschte alle Breakpoints im Debugger und das Problem verschwand!

Ugh!

+0

LOL ... kann das Holz für die Bäume nicht sehen :) Froh, dass du es sortiert hast. – Kev

+0

Unglaublich, hatte gerade das gleiche Problem. –

0

Ich erfahre das Gleiche mit einem Haltepunkt bei einer Variablen Instanziierung und Seitenlade Einstellung einige Sitzungswerte. Windows 7/VS2010 ausführen. Wenn ich den Haltepunkt deaktiviere, kann er den Sitzungsstatus laden.

Verwandte Themen