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 totrue
, either in a configuration file or in thePage
directive. Please also make sure thatSystem.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
Führen Sie dies in IIS 6 oder IIS 7 aus? – marcc
Lokal IIS6, auf Test und Produktion IIS7. –
Scheitert dies in IIS6 und IIS7? – Kev