CORRECÇÃO: URIs em um documento WSDL do WCF consulte inacessíveis instâncias internas, em vez do balanceador de carga como esperado no .NET Framework 3. 0 no Windows Server 2003, Windows XP, Windows Vista e Windows Server 2008

Traduções deste artigo Traduções deste artigo
ID do artigo: 971842 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você usa um serviço WCF (Windows Communication Foundation) nos cenários de carga balanceada no Microsoft .NET Framework 3. 0 no Windows Server 2003, Windows XP, Windows Vista e Windows Server 2008, você deve ter um ou mais dos seguintes problemas:

Problema 1

Considere o seguinte cenário:
  • Você instalou o SDK do Windows Azure e o Windows Azure Tools para o Microsoft Visual Studio.
  • Criar um projeto de Web Service de nuvem e adicionar um serviço Windows Communication Foundation (WCF) para o projeto.
  • Depurar o projeto na malha de desenvolvimento.
  • Procure o documento WSDL (Web Service Definition Language) do que o WCF service.
Nesse cenário, você irá notar que os URIs no documento WSDL consulte inacessíveis ao site interno da instâncias (http://127.0.0.1:5001/Service.svc?wsdl). No entanto, você espera que os URIs no documento WSDL para referir-se o balanceador de carga (http://127.0.0.1:81/Service.svc?wsdl). Além disso, quando você tenta adicionar uma referência ao serviço, você recebe um aviso de falha naAdicionar Referência de serviçocaixa de diálogo.

Problema 2

Considere o seguinte cenário:
  • Você hospeda um serviço WCF em uma instância de um balanceador de carga.
  • Você usa o comando ? Add Service Reference ? ou asvcutil. exeferramenta de linha de comando para baixar os metadados do serviço.
Nesse cenário, quando você tenta gerar um proxy de metadados, o processo falha porque os metadados contém URIs que instâncias do site interno da referência.

Causa

Os problemas descritos na seção "Sintomas" ocorrem porque o balanceador de carga é acessado externamente. No entanto, as instâncias do site interno por trás do balanceador de carga estão inacessíveis.

Resolução

Informações sobre o hotfix

Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplica esta correcção apenas em sistemas que apresentarem esse problema específico. Este hotfix pode receber testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que aguarde a próxima atualização de software que contém esse hotfix.

Para baixar esse hotfix do MSDN Code Gallery, visite o seguinte site da Microsoft:
http://Code.msdn.microsoft.com/KB971842

Observação:O MSDN Code Gallery exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma listado, é porque a página de recursos da Galeria de código não está disponível para esse idioma.

Observação:Se ocorrerem problemas adicionais ou qualquer solução de problemas é necessária, talvez seja necessário criar uma solicitação de serviço separada. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
http://support.microsoft.com/contactus/?ws=support

Pré-requisitos

o apply this hotfix, you must have the .NET Framework 3.5 Service Pack 1 (SP1) or the .NET Framework 3.0 Service Pack 2 (SP2) installed on one of the following operating systems:
  • Windows XP
  • Windows Server 2003
  • Windows Vista SP2
  • Windows Server 2008 SP2

Observação:For a Windows 7 or Window Server 2008 R2 version of this hotfix, click the following article number to view the article in the Microsoft Knowledge Base:
981002A hotfix rollup is available for Windows Communication Foundation in the .NET Framework 3.5 SP1 for Windows 7 and Windows Server 2008 R2

Requisito de reinicialização

You do not have to restart the computer after you apply this hotfix.

Informações de substituição do hotfix

This hotfix does not replace any other hotfixes.

Informações do arquivo

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). Quando você visualiza as informações do arquivo, ele é convertido para a hora local. To find the difference between UTC and local time, use theTime Zoneguia nosData e horaitem in Control Panel.
x86-based version for Windows Vista SP2 and Windows Server 2008 SP2
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoFile sizeDataTempoPlataforma
Servicemonikersupport.dll3.0.4506.414317,24008-Jul-200912:26x86
System.runtime.serialization.dll3.0.4506.4143970,75208-Jul-200912:26x86
System.servicemodel.dll3.0.4506.41435,939,20008-Jul-200912:26x86

x64-based version of Windows Vista SP2 and Windows Server 2008 SP2
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoFile sizeDataTempoPlataforma
Servicemonikersupport.dll3.0.4506.414319,28808-Jul-200912:26x64
System.runtime.serialization.dll3.0.4506.4143847,87208-Jul-200912:26x64
System.servicemodel.dll3.0.4506.41435,275,64808-Jul-200912:26x64

Itanium-based version of Windows Server 2008 SP2
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoFile sizeDataTempoPlataforma
Servicemonikersupport.dll3.0.4506.414333,64008-Jul-200912:27IA-64
System.runtime.serialization.dll3.0.4506.4143847,87208-Jul-200912:26IA-64
System.servicemodel.dll3.0.4506.41435,275,64808-Jul-200912:26IA-64

Situação

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

Mais Informações

To enable the hotfix after you installed it, you have to configure the WCF service to use the following service behavior:
<serviceBehaviors>
   <behavior name="<name>">
     <useRequestHeadersForMetadataAddress>
       <defaultPorts>
          <add scheme="http" port="81" />
          <add scheme="https" port="444" />
        </defaultPorts>
      </useRequestHeadersForMetadataAddress>
   </behavior>
</serviceBehaviors>

Observação:<name></name>is a placeholder that you should replace with the behavior name in your WCF service.

The hotfix causes WCF to generate the correct URI by using the "Host" HTTP header of the incoming metadata request. In this case, the "Host" header contains the load balancer address instead of the internal node address.

If a URI inside the WSDL document has a different scheme than the scheme of the "Host" header URI, for example, if a request for metadata comes over HTTPS but the metadata contains HTTP URIs, the hotfix will need the port number for that different scheme. The port number can be specified per scheme in the <defaultports> section.</defaultports>

Propriedades

ID do artigo: 971842 - Última revisão: quarta-feira, 1 de dezembro de 2010 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 3.0
  • Microsoft .NET Framework 3.0 Service Pack 1
  • Microsoft .NET Framework 3.0 Service Pack 2
Palavras-chave: 
kbexpertiseadvanced kbsurveynew kbqfe kbmt KB971842 KbMtpt
Traduçã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: 971842

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com