ID do artigo: 325056 - Última revisão: quarta-feira, 29 de outubro de 2003 - Revisão: 3.3

PRB: Estado de sessão é perdido no Web Farm se você usar SqlServer ou StateServer sessão modo

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Se você usar o modo de estado de sessão SqlServer ou StateServer, estado da sessão pode ser perdido quando você executa um aplicativo ASP.NET em um ambiente de farm da Web sua carga balanceada.

Causa

Para manter o estado da sessão em diferentes servidores Web em Web farm, o caminho de aplicativo do site da Web (por exemplo, \LM\W3SVC\2) na metabase do Microsoft Internet Information Services (IIS) deve ser o mesmo para todos os servidores Web no farm da Web. O caso também precisa ser o mesmo porque o caminho do aplicativo é diferencia maiúsculas de minúsculas.

Em um servidor Web, o ID de instância do site onde o aplicativo ASP.NET está hospedado pode ser 2 (onde o caminho do aplicativo é \LM\W3SVC\2). Em outro servidor Web, o ID de instância do site da Web pode ser 3 (onde o caminho do aplicativo é \LM\W3SVC\3). Portanto, os caminhos de aplicativo entre servidores Web no farm da Web são diferentes. Para informações adicionais sobre como verificar o caminho de aplicativo do site da Web, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
240225  (http://support.microsoft.com/kb/240225/ ) Descrição do Adsutil e MetaEdit usados para modificar a Metabase

Resolução

Para contornar este problema, sincronize o caminho do aplicativo para o site na metabase do IIS para todos os servidores Web no farm da Web. Verifique se o caso é o mesmo como o caminho do aplicativo para o site da Web é diferencia maiúsculas de minúsculas.

Observação Microsoft recomenda que você faça backup da metabase do IIS antes de alterar a metabase. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
302573  (http://support.microsoft.com/kb/302573/ ) COMO: Fazer backup e restauração do IIS
Para sincronizar o caminho de aplicativo do site da Web, use um dos seguintes métodos:
  • Modificar a metabase do IIS usando código.
    1. Crie um arquivo de texto e, em seguida, nomeie o arquivo Moveinstance.vbs.
    2. Adicione o seguinte código de script para Moveinstance.vbs, que modifica a identificações de instância dos sites para que eles são os mesmos:
      Dim WebService
      Dim oldstr
      Dim newstr
      Dim args
      Set args = WScript.Arguments
      If args.Count < 1 Then
          Wscript.Echo "Must have original instance id and new instance id" &     chr(10) & chr(13) & _
          "usage:  moveinstance.vbs 1 5"  & chr(10) & chr(13) & _
      "Moves instance 1 to instance 5"
          WScript.Quit()
      End If
      Set WebService = GetObject("IIS://LocalHost/W3SVC")
      oldstr = args(0) 'old instance
      newstr = args(1) 'new instance
      WebService.MoveHere oldstr,newstr
      WebService.SetInfo
      Set WebService = nothing
      Set args=nothing
      WScript.echo "DONE"
      						
    3. Salve Moveinstance.vbs.
    4. Execute o script em um prompt de comando do mesmo local que você salvou o arquivo .vbs na etapa anterior.

      Por exemplo, digite cscript moveinstance.vbs 1 5 no prompt de comando. Isso altera o ID de instância de um site da Web de 1 a 5 na metabase.

      Observação Certifique-se que a nova ID de instância que você atribui ao site não esteja atribuída a outro site. Isso pode levar a resultados não confiáveis.
  • Modificar a metabase para sincronizar o caminho de aplicativo do site da Web usando qualquer uma das ferramentas descritos no artigo da Base de dados de Conhecimento da Microsoft Q240225.Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    240225  (http://support.microsoft.com/kb/240225/ ) Descrição do Adsutil e MetaEdit Utilities usados para modificar a Metabase
Observação Quando você usa o modo StateServer, certifique-se de que o <machinekey> seção tem as mesmas chaves no arquivo Machine.config em Web farm. Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
312906  (http://support.microsoft.com/kb/312906/ ) COMO: Criar chaves usando o Visual translation from VPE for Csharp .NET para uso em autenticação de formulários
313091  (http://support.microsoft.com/kb/313091/ ) COMO: Criar chaves usando Visual Basic .NET para uso em autenticação de formulários

A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbconfig kbprb kbstate KB325056 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 325056  (http://support.microsoft.com/kb/325056/en-us/ )