ID do artigo: 917265 - Última revisão: terça-feira, 30 de janeiro de 2007 - Revisão: 2.5

Mensagem de erro quando computadores cliente que estão atrás de um servidor proxy acessam sites que são publicados pelo usando o ISA Server 2004: ? 404 não encontrado. O item solicitado não pôde ser localizado (12028) ?

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

Considere o seguinte cenário:
  • Você ter vários sites que são hospedados em um servidor Web de back-end.
  • Você publicar o servidor Web usando o Microsoft Internet Security and Acceleration (ISA) Server 2004.
  • Use a opção solicitações parecem vir do cliente original e a opção de encaminhar o cabeçalho do host original em vez do real [especificado acima] para configurar a regra de publicação na Web.
Nesse cenário, se você acessar o site a partir de um computador cliente que está atrás de um servidor proxy que armazena em cache conexões direta, você receberá uma mensagem de erro semelhante à seguinte:
404 Não encontrado. O item solicitado não pôde ser localizado (12028)

Causa

Esse problema ocorre se a publicação do ISA Server na Web não é possível estabelecer uma conexão com o servidor Web.

Esse problema pode ocorrer se solicitações de computador cliente externo que são enviadas para o ISA Server na mesma conexão TCP tem cabeçalhos de host diferentes. Esse problema também pode ocorrer se as solicitações são endereçadas ao mesmo servidor Web publicado.

Nesse cenário, o ISA Server fecha a conexão que é usada para a primeira solicitação de cabeçalho de host e abre uma nova conexão para o servidor Web publicado quando o cabeçalho do host é alterado. ISA Server abre novas conexões com o servidor Web porque alguns servidores Web incorretamente processa solicitações que são enviadas com cabeçalhos de host diferentes que chegam na mesma conexão TCP.

Se você ativar a opção solicitações parecem vir do cliente original , o mesmo IP de origem e a porta é usada pelo servidor ISA ao estabelecer a segunda conexão TCP o servidor Web publicado. Em seguida, o servidor Web pode não responder para a segunda conexão TCP tente e você pode receber a mensagem de erro descrita na seção "Sintomas".

Resolução

Para resolver esse problema, faça o seguinte conforme apropriado para sua situação:
  • Para o ISA Server 2004 Standard Edition que está sendo executado no Small Business Server 2003 Premium Edition, instale o seguinte hotfix partir do Centro de download da Microsoft:
    http://www.microsoft.com/downloads/details.aspx?FamilyId=25BB5F65-4734-4268-B2B1-1606DCEAC06F&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyId=25BB5F65-4734-4268-B2B1-1606DCEAC06F&displaylang=en)
  • Para ISA Server 2004 Standard Edition que não está sendo executado no Small Business Server 2003 e para o ISA Server 2004 Enterprise Edition, instale o hotfix descrito no artigo da Base de dados de Conhecimento da Microsoft 919621.
    919621  (http://support.microsoft.com/kb/919621/ ) Descrição do hotfix do ISA Server 2004: 31 de maio de 2006
? (http://support.microsoft.com/kb/919621/). Observe que as informações sobre o script (a frase iniciar "Após você aplica o hotfix, executar o Microsoft Visual Basic script..." permanece como está. Depois de aplicar o hotfix, execute o script Microsoft Visual Basic que é descrito nesta seção. Para fazer isso, siga estas etapas.

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.
  1. Clique em Iniciar , aponte para programas , aponte para Acessórios e clique em Bloco de notas .
  2. Copiar e colar o código a seguir em um novo documento de bloco de notas e, em seguida, salvá-lo em um nome de arquivo com uma extensão .vbs como .vbs AddReuseSessionForDifferentHostHeader:
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '
    ' Copyright (c) Microsoft Corporation. All rights reserved.
    ' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE
    ' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE
    ' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS
    ' HEREBY PERMITTED.
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' This script adds a new VendorParametersSets under the array root.
    ' Used to added new parameters that are needed for hotfixes or service packs.
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
     
    Sub AddReuseSessionForDifferentHostHeader()
     
        ' Create the root obect.
        Dim root  ' The FPCLib.FPC root object
        Set root = CreateObject("FPC.Root")
     
        'Declare the other objects needed.
        Dim array       ' An FPCArray object
        Dim VendorSets  ' An FPCVendorParametersSets collection
        Dim VendorSet   ' An FPCVendorParametersSet object
     
        ' Get references to the array object
        ' and the network rules collection.
        Set array = root.GetContainingArray
        Set VendorSets = array.VendorParametersSets
     
        On Error Resume Next
        Set VendorSet = VendorSets.Item( "{143F5698-103B-12D4-FF34-1F34767DEabc}" )
     
        If Err.Number <> 0 Then
            Err.Clear
     
            ' Add the item
            Set VendorSet = VendorSets.Add( "{143F5698-103B-12D4-FF34-1F34767DEabc}" )
            CheckError
            WScript.Echo "New VendorSet added... " & VendorSet.Name
     
        Else
            WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value("ReuseSessionForDifferentHostHeader")
        End If
     
        if VendorSet.Value("ReuseSessionForDifferentHostHeader") <> true Then
     
            Err.Clear
            VendorSet.Value("ReuseSessionForDifferentHostHeader") = true
     
            If Err.Number <> 0 Then
                CheckError
            Else
                VendorSets.Save false, true
                CheckError
     
                If Err.Number = 0 Then
                    WScript.Echo "Done with ReuseSessionForDifferentHostHeader, saved!"
                End If
            End If
        Else
            WScript.Echo "Done with ReuseSessionForDifferentHostHeader, no change!"
        End If
     
    End Sub
     
    Sub CheckError()
     
        If Err.Number <> 0 Then
            WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
            Err.Clear
        End If
     
    End Sub
     
    AddReuseSessionForDifferentHostHeader
    
  3. Clique duas vezes no arquivo .vbs para executar o script.

Como Contornar

Para contornar esse problema, use a opção solicitações parecem vir do computador do ISA Server em vez da opção que solicitações parecem vir do cliente original para configurar a regra de publicação na Web. Para fazer isso, execute as seguintes etapas:
  1. Inicie a ferramenta Gerenciamento do ISA Server.
  2. Expanda o nó do computador ISA Server e, em seguida, clique em Firewall Policy .
  3. Clique com botão direito do mouse a regra de publicação da Web que você deseja configurar e, em seguida, clique em Propriedades .
  4. Clique na guia A , clique em solicitações parecem vir do computador do ISA Server e, em seguida, clique em OK .
  5. Clique em Aplicar para salvar as alterações e atualizar a configuração.

    Observação Esta solução alternativa pode resolver erros semelhantes são causados pelo servidor Web publicado incorretamente roteamento retorno tráfego TCP para o endereço IP através do servidor ISA do computador cliente.

Mais Informações

Para desabilitar a reutilização de conexões TCP quando o cabeçalho do host for diferente, execute o seguinte script:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Copyright (c) Microsoft Corporation. All rights reserved.
' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE
' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE
' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS
' HEREBY PERMITTED.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' This script removes a VendorParametersSet value.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub ReuseSessionForDifferentHostHeader()

    ' Create the root obect.
    Dim root  ' The FPCLib.FPC root object
    Set root = CreateObject("FPC.Root")

    'Declare the other objects needed.
    Dim array       ' An FPCArray object
    Dim VendorSets  ' An FPCVendorParametersSets collection
    Dim VendorSet   ' An FPCVendorParametersSet object

    ' Get references to the array object
    ' and the network rules collection.
    Set array = root.GetContainingArray
    Set VendorSets = array.VendorParametersSets

    On Error Resume Next
    Set VendorSet = VendorSets.Item( "{143F5698-103B-12D4-FF34-1F34767DEabc}" )

    If Err.Number <> 0 Then
        Err.Clear

        WScript.Echo "VendorParametersSet does not exist."

    Else
        Err.Clear
        VendorSet.RemoveValue("ReuseSessionForDifferentHostHeader")

        If Err.Number <> 0 Then
            CheckError
        Else
            VendorSets.Save false, true
            CheckError

            If Err.Number = 0 Then
                WScript.Echo "Done removing ReuseSessionForDifferentHostHeader, saved!"
            End If
        End If
    End If

End Sub

Sub CheckError()

    If Err.Number <> 0 Then
        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
        Err.Clear
    End If

End Sub

ReuseSessionForDifferentHostHeader

Normalmente, você pode enfrentar o erro que este artigo descreve quando o ISA server é não é possível contatar o servidor Web publicado.

Esse hotfix aborda um cenário muito específico. Antes de aplicar esse hotfix, verifique a conectividade básica do servidor ISA para o servidor publicado. Por exemplo, verificar a resolução de nomes, conectividade TCP e, em seguida, use uma das soluções sugeridas para confirmar o problema.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Security and Acceleration Server 2004 Standard Edition
  • Microsoft Internet Security and Acceleration Server Enterprise Edition Service Pack 2
Palavras-chave: 
kbmt atdownload kbqfe kbprb KB917265 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: 917265  (http://support.microsoft.com/kb/917265/en-us/ )