CORRECÇÃO: URI num documento WCF WSDL Consulte instâncias internas inacessíveis em vez de para o balanceador de carga conforme esperado no .NET Framework 3. 0 no Windows Server 2003, Windows XP, Windows Vista e Windows Server 2008

Traduções de Artigos Traduções de Artigos
Artigo: 971842 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando utiliza um serviço do Windows Communication Foundation (WCF) em cenários com balanceamento de carga no Microsoft .NET Framework 3. 0 no Windows Server 2003, Windows XP, Windows Vista e Windows Server 2008, detecta um ou mais dos seguintes problemas:

Problema 1

Considere o seguinte cenário:
  • Instalou o Windows Azure SDK e o Windows Azure ferramentas para o Microsoft Visual Studio.
  • Criar um projecto de serviço de nuvem de Web e adicionar um serviço do Windows Communication Foundation (WCF) ao projecto.
  • Depuração do projecto o tecido de desenvolvimento.
  • Navegue para o documento Web Service Definition Language (WSDL) do WCF serviço.
Neste cenário, notará que o URI no documento WSDL Consulte inacessível ao Web site interno instâncias (http://127.0.0.1:5001/Service.svc?wsdl). No entanto, esperar o URI no documento WSDL para referir o balanceador de carga (http://127.0.0.1:81/Service.svc?wsdl). Além disso, quando tenta adicionar uma referência para o serviço, recebe um aviso de falha naAdicionar Referência de serviçocaixa de diálogo.

Problema 2

Considere o seguinte cenário:
  • Hospedar um serviço WCF numa instância por trás de um balanceador de carga.
  • Utilizar o comando ? Add Reference do serviço ? ou osvcutil.exeferramenta da linha de comandos para transferir os metadados do serviço.
Neste cenário, quando tenta gerar um proxy de metadados, o processo falhar porque os metadados contém URI que instâncias de Web site interno de referência.

Causa

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

Resolução

Informações sobre correcções

Tem uma correcção suportada disponível na Microsoft. No entanto, esta correcção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Para transferir esta correcção a partir da Galeria de código da MSDN, visite o seguinte Web site da Microsoft:
http://Code.msdn.microsoft.com/KB971842

NotaA Galeria de código MSDN apresenta os idiomas para os quais a correcção está disponível. Se não visualizar o seu idioma listado, é porque a página de recursos da Galeria de código não está disponível para esse idioma.

NotaSe ocorrerem problemas adicionais ou se for necessária a qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a perguntas de suporte adicionais e a problemas que não são elegíveis para esta correcção específica. Para obter uma lista completa dos números de telefone do suporte a clientes Microsoft e o suporte ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support

Pré-requisitos

o aplicar esta correcção, tem de ter o .NET Framework 3. 5 Service Pack 1 (SP1) ou o .NET Framework 3. 0 Service Pack 2 (SP2) instalado dos seguintes sistemas operativos:
  • Windows XP
  • Windows Server 2003
  • Windows Vista SP2
  • Windows Server 2008 SP2

NotaPara obter uma versão 7 do Windows ou o Windows Server 2008 R2 esta correcção, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
981002Está disponível um conjunto de correcção para Windows Communication Foundation no .NET Framework 3. 5 SP1 para Windows 7 e do Windows Server 2008 R2

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição de correcções

Esta correcção não substitui quaisquer outras correcções.

Informações sobre o ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de arquivo posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas no tempo universal coordenado (UTC). Quando visualiza as informações do ficheiro, é convertida para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize aFuso horárioseparador naData e horaitem no controlo do painel.
versão com base em x86 para Windows Vista SP2 e Windows Server 2008 SP2
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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

versão baseada em x64 do Windows Vista SP2 e Windows Server 2008 SP2
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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

Versão baseada em Itanium do Windows Server 2008 SP2
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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

Ponto Da Situação

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

Mais Informação

Para activar a correcção depois de instalado, tem de configurar o serviço WCF para utilizar o seguinte comportamento de serviço:
<serviceBehaviors>
   <behavior name="<name>">
     <useRequestHeadersForMetadataAddress>
       <defaultPorts>
          <add scheme="http" port="81" />
          <add scheme="https" port="444" />
        </defaultPorts>
      </useRequestHeadersForMetadataAddress>
   </behavior>
</serviceBehaviors>

Nota<name></name>é um marcador de posição que deve substituir com o nome de comportamento em serviço WCF.

A correcção faz com que o WCF gerar o URI correcto utilizando o cabeçalho "Host" HTTP da recepção de pedidos de metadados. Neste caso, o cabeçalho "Host" contém o endereço do balanceador de carga em vez do endereço do nó interno.

Se um URI no documento WSDL tem um esquema diferente do esquema do cabeçalho "Host" URI, por exemplo, se um pedido de metadados é fornecido através de HTTPS, mas os metadados contém URI de HTTP, a correcção terá o número da porta para a esquema de cores diferente. O número da porta pode ser especificado por esquema na <defaultports>secção.</defaultports>

Propriedades

Artigo: 971842 - Última revisão: 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 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: 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