Usuários sendo desconectados
Pessoal, estou tendo um problema com minha aplicação e gostaria de contar com a ajuda de vocês.
Eu tenho uma aplicação em C# MVC5, e estou fazendo a autenticação com asp.net identity 2.0.
Eu configurei o cookie do usuário, para expirar em 1 hora, porem tenho recibo muitas reclamações de usuários que em poucos minutos de inatividade o sistema esta pedindo para se logar novamente.
Minha aplicação é usada por varias empresas, e eu tenho varias aplicações no iis, e cada uma delas usa um pool diferente. Porem a aplicação é a mesma, eu apenas subo varias delas cada uma apontando para uma base diferente, porem estruturalmente as bases são idênticas também.
Como são usuários de empresas diferentes que relatam o mesmo problema, eu descartei ser algo local da maquina do usuário, tipo estar limpando cache ou alguma aplicação na maquina local estar fazendo estar excluindo cookie sem ciência do usuário., até porque são usuários com pouco conhecimento em informatica e duvido que estão fazendo isso, e como falei são muitos relatos.
Então revisei a aplicação, e me parece que implementei correto, conforme os inúmeros artigos existentes na internet, ou pelo menos eu ainda não achei algo que tenha feito de errado.
Eu já fiz vários testes, me loguei e fiquei por 20,30,40,50,55 minutos e não caiu, e apos os 60 minutos, cai conforme o esperado. Então é algo intermitente.
Bom pensei que pudesse ser o meu iis, então fui no pool da aplicação e aumentei o limite da memoria privada para 2gb antes de reciclar mas ainda continuo a receber relatos de queda.
Dai fiz um teste, pensei, mesmo que o iis esteja reciclando o pool, o meu cookie esta la, e dentro da validade. Então fiz um teste, me loguei na aplicação e deu um iisreset /stop no servidor fui na aplicação dei um f5, para garantir que estava tudo fora, depois dei um iisreset /start no server. Fui na aplicação e dei outro f5. E aplicação entrou sem pedir senha. Então suponho que mesmo que o iis esteja reciclando demais, a aplicação não deveria cair pro usuário mesmo assim, pelo fato do cookie estar ativo, correto? Uma vez que após iniciar o iis não me pediu senha novamente.
Chequei o consumo do servidor e raramente ultrapassa os 60% de uso de memoria, e processador não chega a 50%. São 16gb de RAM e 2 processador 4 núcleos.
Depois de todos os testes, fui ver os logs do iis, dai eu entro numa área que conheço pouco. de fato la mostra que o IIS recicla os diversos pools varias vezes ao dia. Mas no exemplo do teste acima, isso não deveria fazer o usuário se desconectar certo?
Outra coisa, que me chamou atenção, nos logs do windows tem muito log de erro do nhibernate (uso pra tudo). mas o estranho que meus usuarios não relatam erro na aplicação em si, como pode o nhiberdate gerar tantos erros, sem que isso se manifeste em erros em tela? Será que tem relação?
Bom pessoal, tentei relatar em detalhes o que acontece, mas já são sei mais pra onde correr, alguém pode me ajudar?
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
ExpireTimeSpan = TimeSpan.FromHours(1),
LoginPath = new PathString("/Acesso/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, IdentityUser>
(
validateInterval: TimeSpan.FromHours(1),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)
)
}
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

Discussão (0)
Carregando comentários...