Domanda

Questo è strano, ma speriamo che qualcuno possa darmi un'idea qui. Sto inserendo alcuni valori nella sessione nel Session_Start del Global.asax nella mia app. Immediatamente dopo la OnInit la mia pagina di base Session viene chiamata e tenta di utilizzare una di quelle enableSessionState variabili.

La parte strana a volte funziona, e dopo NESSUNA modifica inizierà a darmi questo errore:

  

" Lo stato della sessione può essere utilizzato solo quando   true è impostato su Page,   in un file di configurazione o in   la direttiva System.Web.SessionStateModule. Per favore, anche fare   sicuro   <configuration>\<system.web>\<httpModules> o a   il modulo stato sessione personalizzato è   incluso nel   web.config   sezione dell'applicazione   configurazione quot. &;

Ho cercato e cercato di trovare tutti i modi diversi per abilitare la sessione in enableSessionState="true". Ecco come appare ora:

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

Puoi vedere che ho commentato alcune cose, in particolare <add name="Session" type="System.Web.SessionState.SessionStateModule"/> e <=> perché non c'erano mai state prima e funzionava sempre. Ma l'ho provato con entrambi abilitati, l'uno o l'altro abilitato, semplicemente non fa differenza.

Questa è un'app in produzione da anni, sto apportando solo piccole modifiche, probabilmente la più grande delle quali è l'aggiunta di un " titlebar " pagina e aggiornamento da 2.0 a 3.5. Non ho provato ad aggiungere il <=> alle direttive della pagina perché non ha funzionato nel <=> Non vedo il motivo per cui dovrebbe funzionare direttamente sulla pagina e odio più sporcare l'app o perdere altro tempo cercando invano di abilitare la sessione.

Qualcuno ha altre idee?

Grazie, Jeff

È stato utile?

Soluzione

Punti di interruzione!

I punti di interruzione sono stati impostati nei metodi di costruzione della pagina di base e della pagina principale, nonché in Session_Start e OnInit. Un collega ha eliminato tutti i punti di interruzione nel debugger e il problema è scomparso!

Ugh!

Altri suggerimenti

Provo la stessa cosa con un punto di interruzione a un'istanza variabile e il caricamento della pagina che imposta alcuni valori di sessione. Esecuzione di Windows 7 / VS2010. Quando disabilito il breakpoint è quindi in grado di caricare lo stato della sessione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top