none
utilizando cookies e session com servidor IIS8 RRS feed

  • Pergunta

  • Bom dia

    Eu fiz uma migração em meu domínio para utilizar o IIS8. Porém meu sistema antigo (desenvolvido em MVC3) esta dando problemas, e notei que ele esta perdendo os dados que passo por Session ou que recupero de um Cookie.

    Alguém sabe se preciso fazer alguma configuração diferente? Ou como posso resolver este problema?
    Desde já agradeço!

    Paulo Marcelo Dalbosco

    quarta-feira, 19 de fevereiro de 2014 12:47

Respostas

  • Obrigado por sua Resposta Airton. Mas o meu problema parou de acontecer. Acho que era alguma instabilidade temporária do Servidor.


    Paulo Marcelo Dalbosco

    • Marcado como Resposta Paulo M Dalbosco sexta-feira, 21 de fevereiro de 2014 13:13
    sexta-feira, 21 de fevereiro de 2014 13:12

Todas as Respostas

  • Eu resolvi isso passando a session state para o SQL.

    No meu caso eu também precisei utilizar alguns objetos complexos, então eu criei um controlleruniversal e referenciei ele em todos os outros.

    Ficou assim:

    Execute pelo cmd do visual studio para criar o banco de dados de sessão:

    aspnet_regsql -S [server] -E -ssadd -sstype c -d SessionStateDB

    no Web.Config:

    <system.web>
    ...
    <sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="Data Source=BasedeDados;Initial Catalog=SessionStateDB;integrated security=False; User Id=Login; Password=Senha;" cookieless="false" timeout="20" />
    
    ...
    </system.web>
    
    

    Isso já resolve a perda de dados. Outra opção é utilizar o lado do cliente com o localstorage do html5.

    Se quiser utilizar objetos complexos(isso é meio que um jeitinho):

    Em todos os controllers:

    namespace SeuNamespace
    {
        public class SeuController : CommonController
        {

    E no CommonController:

        public class CommonController : Controller
        {
            public Usuario _Usuario
            {
                get
                {
                    if (HttpContext.Session["Usuario"] != null)
                    {
                        int IdUser = (int)HttpContext.Session["Usuario"];
                        //procura por seu usuário e retorna ele
                    }
                    else
                    {
                        return null;
                    }
                }
                set
                {
                    if (value != null)
                    {
                        HttpContext.Session["Usuario"] = value.Id;
                        HttpContext.Session["Nome_Usuario"] = value.NomeUsuario;
                    }
                }
            }


    "just because you've abandoned your hopes of becoming a great thinker or scientist, don't give up on attaining freedom, achieving humility, serving others..." - 7.67 - Meditations - Marcus Aurelius

    quinta-feira, 20 de fevereiro de 2014 13:07
  • Obrigado por sua Resposta Airton. Mas o meu problema parou de acontecer. Acho que era alguma instabilidade temporária do Servidor.


    Paulo Marcelo Dalbosco

    • Marcado como Resposta Paulo M Dalbosco sexta-feira, 21 de fevereiro de 2014 13:13
    sexta-feira, 21 de fevereiro de 2014 13:12