![Problemas de balanceamento de carga do aplicativo web .Net usando State Server](https://rvso.com/image/623644/Problemas%20de%20balanceamento%20de%20carga%20do%20aplicativo%20web%20.Net%20usando%20State%20Server.png)
Temos vários servidores web atrás de um balanceador de carga Netscaler. Cada servidor (Win2008) hospeda um aplicativo ASP.Net (usando iis 6.1) que está configurado para usar um servidor central executando o serviço .Net StateServer para gerenciamento de estado de sessão.
Quando configuramos o balanceador de carga para usar roteamento "round robin" ou "menos ocupado", o aplicativo da web trava regularmente com um erro indicando que algo que esperava estar no estado da sessão estava faltando. No entanto, isso não acontece o tempo todo - apenas em determinadas etapas e em cerca de 75% das tentativas.
Quando configuramos o balanceador de carga para persistência do servidor (para que o usuário "grude" em um servidor), o problema não ocorre. (Mas este não é o nosso modo de execução desejado)
Coisas que já verificamos/fizemos:
- Reiniciartodas as coisas
- As chaves da máquina são as mesmas em todos os servidores
- Não há problemas de conectividade entre os servidores web e o servidor de estado
- IIS é que os nomes, caminhos e IDs dos sites são iguais em todos os servidores web
- Nenhum erro é registrado nos logs do aplicativo
Alguém tem alguma sugestão sobre outras coisas para verificar/possíveis causas?
Nota. Temos exatamente a mesma configuração em outro ambiente - mesmo tipo de balanceadores de carga, mesmo aplicativo web, mesma configuração, mesma configuração de servidor... e funciona bem. A única diferença é uma versão diferente do VMWare Tools, mas não consegue ver essa sendo a causa?
Responder1
Meses depois, descobrimos a causa. Alguns (mas não todos) dos servidores foram atualizados para uma versão mais recente do .Net Framework.
A Microsoft não oferece suporte a servidores diferentes usando o mesmo StateServercom diferentes versões do framework, portanto, quando os clientes alternavam entre um servidor com 4.5.1 e outro que tinha uma versão anterior, eles basicamente perdiam a sessão e o aplicativo travava.
Se você encontrar esse problema, sugiro que vocêverifique qual Framework está instaladoem cada servidor - todos devem ser iguais para que funcionem com o mesmo StateServer.