Ceci est un étrange, mais j'espère que quelqu'un peut me donner une idée ici. Je mets quelques valeurs en session dans le Session_Start
du Global.asax
dans mon application. Immédiatement après le Session_Start
, le OnInit
de ma page de base est appelé et essaie d'utiliser l'une de ces variables Session
.Session .NET ne fonctionne pas
La partie bizarre est parfois ça marche, et puis après AUCUN changement commencera me donner cette erreur:
"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."
Je l'ai regardé et cherché à trouver toutes les différentes façons sur la session permettant la web.config
. Voici à quoi il ressemble maintenant:
<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>
Vous pouvez voir que j'ai des trucs commenté, en particulier la enableSessionState="true"
et <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
parce qu'ils étaient jamais là avant et il a toujours l'habitude de travailler. Mais je l'ai essayé avec les deux activés, l'un ou l'autre étant activé, ça ne fait pas de différence.
Ceci est une application qui a été en production depuis des années, je ne fais que des changements mineurs, probablement le plus important est d'ajouter une page "barre de titre", et la mise à niveau de 2.0 à 3.5. Je n'ai pas essayé d'ajouter le enableSessionState
aux directives de la page parce que cela ne fonctionnait pas dans le web.config
Je ne vois pas pourquoi cela fonctionnerait directement sur la page, et je détesterais salir l'application plus ou perdre plus de temps essayant en vain d'activer la session.
Quelqu'un a-t-il d'autres idées?
Merci, Jeff
L'exécutez-vous dans IIS 6 ou IIS 7? – marcc
Localement IIS6, sur test et production IIS7. –
Est-ce un échec à la fois IIS6 et IIS7? – Kev