none
Sessão no ASP.NET 3.5 MVC RRS feed

  • Pergunta

  • Boa noite pessoal,
     
    Estamos há algum tempo tentando resolver um problema na sessão de uma aplicação.
    Pesquisei alguns tópicos aqui no Fórum mas não localizei algo que resolva nossa problema: o evento Session_Start() não roda no servidor.
     
    O cenário é o seguinte:
    Servidor Windows 2003 R2 com IIS 6.0
    Site ASP Clássico com 4 aplicações ASP.NET: 1.1 / 2.0 / 3.5 / 3.5 MVC.
     
    Todas as páginas ASP.NET iniciam dentro do website ASP Clássico, passam por uma página ASP que grava as informações da sessão em um cookie, e resgatam as informações deste cookie.
    Agora, precisamos fazer com que a aplicação 3.5 MVC expire junto com a Sessão do ASP Clássico.
    Então o que implementamos (se puderem/quiserem sugerir algo melhor, toda ajuda é bem vinda):
    1. Colocamos um IFRAME escondido no Cabeçalho com uma página ASP Clássico de forma a manter a sessão do ASP Clássico ativa.
    2. Lemos o cookie no Session_Start()
    3. Passamos os dados para a sessão.
    4. Deletamos o cookie (caso passe pelo Session_Start novamente não terá dados para ler)
    5. Fizemos todos os dados serem lidos da sessão.
    Quando a sessão expirar o erro é tratado redirecionando ao ASP Clássico que já trata a sessão expirada.
     
    Nos testes com o VS 2008 funciona perfeitamente, porém, quando publicamos no servidor, a impressão é a sessão não é iniciada (não passa pelo Session_Start).

    Segue a configuração do web.config: <sessionState mode="InProc" cookieless="true" timeout="20"/>
     

    Alguém tem alguma sugestão?

     
    Desde já, obrigado pela ajuda,
    Abraços!
    segunda-feira, 18 de julho de 2011 23:14

Todas as Respostas

  • Nunca trabalhei com este tipo de interoperabilidade entre aplicações mas uma coisa me chamou a atenção.

    Você está setando o sessionState como "cookieless" ou seja, sem cookies, como recuperar um cookie sendo que ele não existe/não foi criado???

    terça-feira, 19 de julho de 2011 15:52
    Moderador
  • marcelo se entendi os dois sistemas usam o mesmo cookie, se no webforms vc fizer isso o cookie será expirado e consequentemente no mvc tb.

    Response.Cookies("Session").Expires = DateTime.Now.AddYears(-10)
    


    Junior
    terça-feira, 19 de julho de 2011 17:22