Sessão .NET não funciona
Este é um estranho, mas espero que alguém possa me dar uma idéia aqui. Estou colocando alguns valores em sessão noSession_Start
doGlobal.asax
no meu aplicativo. Imediatamente após oSession_Start
minha página de baseOnInit
é chamado e tenta usar um daquelesSession
variáveis.
A parte estranha é que às vezes funciona, e depois, depois de NO, as alterações começarão a me dar esse erro:
"O estado da sessão só pode ser usado quandoenableSessionState
está configurado paratrue
, em um arquivo de configuração ou noPage
directiva. Por favor, também certifique-se de queSystem.Web.SessionStateModule
ou um módulo de estado de sessão personalizado está incluído no<configuration>\<system.web>\<httpModules>
seção na configuração da aplicação. "
Eu olhei e olhei encontrar todas as maneiras diferentes na ativação da sessão noweb.config
. Aqui está o que parece agora:
<code><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> </code>
Você pode ver que eu tenho algumas coisas comentadas, especificamente aenableSessionState="true"
e<add name="Session" type="System.Web.SessionState.SessionStateModule"/>
porque eles nunca estiveram lá antes e sempre costumavam trabalhar. Mas eu tentei com ambos habilitados, um ou outro habilitado, só não faz diferença.
Este é um aplicativo que está em produção há anos, estou apenas fazendo pequenas alterações, provavelmente a maior delas é adicionar uma página de "barra de título" a ele e atualizar de 2.0 para 3.5. Eu não tentei adicionar oenableSessionState
para as diretivas de página porque não funcionou noweb.config
Eu não vejo por que isso funcionaria diretamente na página, e eu odiaria sujar o aplicativo mais ou perder mais tempo tentando em vão ativar a sessão.
Alguém tem outras ideias?
Obrigado Jeff