Artigo: 325056 - Última revisão: quarta-feira, 29 de Outubro de 2003 - Revisão: 3.3

PROBLEMA: O estado da sessão é perdido no Web Farm se utilizar SqlServer ou o modo StateServer sessão

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 | Reduzir tudo

Sintomas

Se utilizar o modo de estado de sessão SqlServer ou StateServer, estado da sessão poderão ser perdido quando executa uma aplicação Web do ASP.NET num ambiente com balanceamento de carga Web farm de servidores.

Causa

Para manter o estado da sessão por diferentes servidores Web do Web farm, o caminho da aplicação do Web site (por exemplo, \LM\W3SVC\2) na metabase ISS (Serviços de informação Internet Information Services) tem de ser os mesmos para todos os servidores Web no Web farm. Caso também tem de ser o mesmo porque o caminho da aplicação é sensível a maiúsculas e minúsculas.

Num servidor Web, o ID da instância do Web site onde a aplicação do ASP.NET está hospedada poderá ser 2 (em que o caminho da aplicação é \LM\W3SVC\2). Num outro servidor Web, o ID da instância do Web site poderá ser 3 (em que o caminho da aplicação é \LM\W3SVC\3). Deste modo, os caminhos de aplicação entre servidores da Web no Web farm são diferentes. Para obter informações adicionais sobre como verificar o caminho de aplicação do Web site, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
240225  (http://support.microsoft.com/kb/240225/ ) Descrição do Adsutil e MetaEdit utilizada para modificar a Metabase

Resolução

Para contornar este problema, sincronize o caminho da aplicação para o Web site na metabase do IIS para todos os servidores da Web no Web farm. Certifique-se que o incidente é o mesmo uma vez que o caminho da aplicação para o Web site é sensível a maiúsculas e minúsculas.

Nota Microsoft recomenda crie uma que a cópia de segurança da metabase do IIS antes de alterar a metabase. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
302573  (http://support.microsoft.com/kb/302573/ ) COMO: Criar uma cópia de segurança e restauro do IIS
Para sincronizar o caminho de aplicação do Web site do, utilize um dos seguintes métodos:
  • Modificar a metabase do IIS utilizando o código.
    1. Criar um ficheiro de texto e, em seguida, nomeie o arquivo Moveinstance.vbs.
    2. Adicione o seguinte código de script Moveinstance.vbs modifica a instância ID de Web sites, para que sejam as mesmas:
      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. Guarde Moveinstance.vbs.
    4. Execute o script a partir de uma linha de comandos da mesma localização que guardou o ficheiro .vbs no passo anterior.

      Por exemplo, escreva cscript moveinstance.vbs 1 5 na linha de comandos. Isto altera o ID da instância de um Web site de 1 a 5 na metabase.

      Nota Certifique-se que o novo ID da instância atribuído ao Web site não está já atribuído a outro Web site. Isto pode conduzir a resultados não fiáveis.
  • Modificar a metabase para sincronizar o caminho de aplicação do Web site do utilizando qualquer das ferramentas que são descritas no artigo da base de dados de conhecimento da Microsoft Q240225.Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    240225  (http://support.microsoft.com/kb/240225/ ) Descrição do Adsutil e utilitários de ferramenta MetaEdit utilizados para modificar a Metabase
Nota Quando utiliza o modo StateServer, certifique-se de que o <machinekey> secção tem as mesmas teclas no ficheiro Machine.config através do Web farm. Para obter informações adicionais, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
312906  (http://support.microsoft.com/kb/312906/ ) COMO: Criar teclas utilizando o Visual C# .NET para utilizar na autenticação de formulários
313091  (http://support.microsoft.com/kb/313091/ ) COMO: Criar chaves utilizando o Visual Basic .NET para utilizar na 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )