Problema com HttpHandler e estado da sessão
Estou tentando criar uma solução que simule o App_Offline.htm para acesso remoto, mas ainda permita que os usuários locais testem o site. Encontrei várias opções que estou testando, mas a melhor parece não funcionar no nosso site ASP.NET (2.0), que depende do estado da sessão ser ativado em todas as páginas.
O HttpHandler é adicionado ao web.config
<add verb="*" path="*.aspx" type="AppOffline.AppOfflineHandler, AppOffline" />
e quando a classe é chamada, ela se resume a isso:
public void ProcessRequest( HttpContext context )
{
this.context = context;
// offline mode and remote request?
if ( !context.Request.IsLocal &&
IsOffline
)
{
context.Response.Clear();
context.Response.Write( AppOffline );
context.Response.End();
}
else
// redirect to the default processing pipe
PageParser.GetCompiledPageInstance(
context.Request.Path,
context.Request.PhysicalPath,
context ).ProcessRequest( context );
}
O problema está em PageParser.GetCompiledPageInstance. Qualquer página que eu acessar agora em nosso site recebe a seguinte mensagem de erro:
"O estado da sessão pode ser usado apenas quando enableSessionState estiver definido como true, em um arquivo de configuração ou na diretiva Page. Verifique também se System.Web.SessionStateModule ou um módulo de estado de sessão personalizado está incluído na <configuração> \ < system.web> \ <httpModules> na configuração do aplicativo. "
Temos todas as nossas variáveis de sessão armazenadas no SQL, não tenho certeza se isso é relevante ou não.
Vi outras pessoas que tiveram erros semelhantes e a resposta que eles receberam foi que você precisava adicionar o ProcessRequest (contexto) para contornar isso.
pensamentos, comentários, sugestões?
obrigado.