Jump to content
Adriano_MSB

Usuários sendo desconectados

Recommended Posts

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);

 

Pool.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By AlexandreHenrique
      Olá pessoal. preciso de uma ajuda com o meu projeto de upload.
      O projeto de upload roda no IIS + Php;
      Tenho um script que ta enviando  o arquivo para o diretório correto.
      O problema é que ao tentar acessar esse arquivo via URL, o anexo não abre  e exibe a mensagem abaixo.
       

      Notei que o arquivo au cair no DIR, ele entra sem permissões (vi em propriedades), se eu editar o mesmo alterando as permissões, ele carrega pela url do meu site.
      Quero que o arquivo enviado pelo script caia no DIR correta com as devidas permissões pra eu poder ler no navegador via URL;
       
      Já tentei resolver de toda forma mas nao tive sucesso;.
      No Apache isso é mais simples, mas no IIS ta complicado;
       
       
       
      Alguem pode me dá uma dica?
    • By andreia_sp
      Ola pessoal,
       
      nao sei se o correto seria nessa area, na duvida coloquei em C# porque minha aplicação está em C#.
      O problema é o seguinte: tenho um sistema desenvolvido que roda apenas localmente (intranet). Configurei o firewall pra liberar a porta e as outras maquinas acessam normalmente. A questao é que o IP da maquina onde foi hospedado é dinamico. Ou seja, diariamente as outras maquinas "perdem" o acesso.
      Tem como configurar de alguma forma que, independente do IP, todas as maquinas consigam acessar?
       
       
      Obrigada
    • By Claudio Neto
      Boa noite
       
      Fiz meu primeiro projeto .Net Core, e está tudo funcionando que é uma belezinha.
       
      Porém, ao publicar a aplicação no IIS, não estou conseguindo conectar no banco de dados. As páginas que não possuem conexão funcionam.
       
      Quando publiquei, ele gerou três arquivos json de configuração: appsettings.json, appsettings.Development.json e appsettings.production.json, e dentro de cada um dele, tem a conexão que eu criei e ele inseriu mais uma:
       
      "ConnectionStrings": { "HoleriteContext": "Server=DESKTOP-DGCC9GF\\SQLEXPRESS;Database=HOLERITES;Trusted_Connection=True;MultipleActiveResultSets=true;user id=sa;pwd=123;", "prjHoleriteContextConnection": "Server=(localdb)\\mssqllocaldb;Database=prjHolerite;Trusted_Connection=True;MultipleActiveResultSets=true" } Eu tentei copiar a string de conexão de HoleritesContext para prjHoleriteContextConnection, mas não deu em nada.
       
      Meu banco já está configurado para aceitar conexões TCP. E o erro está dando tanto na minha máquina local quanto no servidor do cliente.
       
      Não consegui encontrar algum tutorial que fale sobre essa parte, então alguém pode me auxiliar onde estou errando?
       
      Obrigado.
       
    • By portallweb
      Bom dia, pessoal.
       
      A questão é que eu consigo acessar um endereço "dominio.com/modulo/id/titulo" e ele reescrever para "dominio.com/default.asp?link=artigo&id=123&titulo=teste", mas minha dúvida é se consigo fazer o processo reverso, ou seja, acessar "dominio.com/default.asp?link=artigo&id=123&titulo=teste" e ele alterar para "dominio.com/modulo/id/titulo".
       
      Códigos:
       
      WEB.CONFIG
       
      <?xml version="1.0" encoding="UTF-8"?> <system.webServer>     <rewrite>         <rules>             <rule name="artigo" stopProcessing="true">                 <match url="^artigo/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?$" />                 <conditions>                      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />                      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />                  </conditions>                 <action type="Rewrite" url="default.asp?link={R:0}&id={R:1}&teste={R:2}" />             </rule>         </rules>     </rewrite> </system.webServer>  
      ASP
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"/> <title>Teste Isapi Rewrite</title> </head> <body> <p> Teste!<br> link: <%=request("link")%><br> id: <%=request("id")%><br> teste: <%=request("teste")%><br> </p> </body> </html>  
      Desde já agradeço!
    • By s3c0
      Amigos,
       
      boa noite. Estou tentando fazer um script que informa o uso do Processador em um servidor Windows.
       
      Encontrei na internet um script que funciona em partes. Porém o uso do Processador sempre retorna vazio. 
       
      <?php define ( 'CPU_NAME', '.' ); $obj = new COM ( 'winmgmts:{impersonationLevel=impersonate}//' . CPU_NAME . '/root/cimv2' ); $pc = 0; foreach ( $obj->instancesof ( 'Win32_Processor' ) as $mp ) { echo "<pre>Processor (" . ++$pc . ")\r\n\r\n"; echo " Processor Id: " . $mp->ProcessorId . "\r\n"; echo " Name: " . trim ( $mp->Name ) . " @ " . $mp->CurrentClockSpeed . " MHz\r\n"; echo " CPU Load: " . $mp->LoadPercentage . "%\r\n"; echo " CPU Status: " . $mp->Status . "\r\n"; echo " CPU Stepping: " . $mp->Stepping . "\r\n"; echo " CPU Revision: " . $mp->Revision . "\r\n"; echo " System Name: " . $mp->SystemName . "\r\n</pre>"; } ?> Alguém tem alguma ideia de como trazer o uso do processador?
       
      Agradeço a atenção de todos.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.