2009-06-25 9 views
1

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

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

+0

L'exécutez-vous dans IIS 6 ou IIS 7? – marcc

+0

Localement IIS6, sur test et production IIS7. –

+0

Est-ce un échec à la fois IIS6 et IIS7? – Kev

Répondre

6

points d'arrêt!

J'avais des points d'arrêt définis dans les méthodes de constructeur de la page de base et de la page principale, ainsi que dans les fonctions Session_Start et OnInit. Un collègue a supprimé tous les points d'arrêt dans le débogueur et le problème a disparu!

Ugh!

+0

LOL ... je ne vois pas le bois pour les arbres :) Je suis content que vous l'ayez trié. – Kev

+0

Incroyable, juste eu le même problème. –

0

J'éprouve la même chose avec un point d'arrêt à une instanciation variable et le chargement de la page certaines valeurs de session. En cours d'exécution Windows 7/VS2010. Lorsque je désactive le point d'arrêt, il est alors capable de charger l'état de la session.