Issues Balanceamento de carga .Net web app usando o State Server

1

Temos vários servidores da web por trás de um balanceador de carga Netscaler. Os servidores (Win2008) hospedam um aplicativo ASP.Net (usando o iis 6.1) que é configurado para usar um servidor central que executa o serviço .Net StateServer para gerenciamento de estado da sessão.

Quando configuramos o balanceador de carga para usar o roteamento "round robin" ou "menos ocupado", o aplicativo da web falha regularmente com um erro indicando que algo que ele esperava estar no estado da sessão estava ausente. No entanto, ele não faz isso o tempo todo - apenas em determinadas etapas e, em seguida, em cerca de 75% das tentativas.

Quando configuramos o balanceador de carga para a persistência do servidor (para que o usuário "fique" em um servidor), o problema não ocorre. (Mas este não é o nosso modo de execução desejado)

Coisas que verificamos / concluímos já:

  • Reinicie todas as coisas
  • As chaves da máquina são as mesmas em todos os servidores
  • Não há problemas de conectividade entre os servidores da web e o servidor de estado
  • O IIS é um nome de site, os caminhos e os IDs são os mesmos em todos os servidores da web
  • Nenhum erro é registrado nos logs do aplicativo

Alguém tem alguma sugestão sobre outras coisas para verificar / possíveis causas?

NB. Temos exatamente a mesma configuração em outro ambiente - mesmo tipo de balanceadores de carga, mesmo aplicativo da 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 pode ver esta sendo a causa?

    
por Stephen Lloyd 30.12.2013 / 12:10

1 resposta

0

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 suporta servidores diferentes usando o mesmo StateServer com diferentes versões do framework , então quando os clientes pulavam entre um servidor com 4.5.1 e um que tinha uma versão anterior eles essencialmente perderam a sessão e o aplicativo travou.

Se você encontrar esse problema, sugiro que você verifique qual Framework está instalado em cada servidor - todos devem ser os mesmos para que trabalhem com o mesmo StateServer.

    
por 14.05.2014 / 16:51