Problemas de balanceamento de carga do aplicativo web .Net usando State Server

Problemas de balanceamento de carga do aplicativo web .Net usando State Server

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.

informação relacionada