FIX: URI in un documento WSDL WCF fanno riferimento a inaccessibile interne istanze invece che per il bilanciamento del carico come previsto in.NET Framework 3.0 in Windows Server 2003, Windows XP, Windows Vista e Windows Server 2008

Sintomi

Quando si utilizza un servizio Windows Communication Foundation (WCF) in scenari di bilanciamento del carico di Microsoft.NET Framework 3.0 in Windows Server 2003, Windows XP, Windows Vista e Windows Server 2008, si verifichi uno o più dei seguenti problemi:

Problema 1

Si consideri lo scenario seguente:
  • È stato installato Microsoft Azure SDK e gli strumenti di Windows Azure per Microsoft Visual Studio.
  • Creare un progetto di servizio Cloud Web e aggiungere al progetto un servizio Windows Communication Foundation (WCF).
  • Si esegue il debug del progetto nell'infrastruttura di sviluppo.
  • Visualizzare il documento di definizione del linguaggio WSDL (Web Service) del servizio WCF.
In questo scenario, si noterà che gli URI nel documento WSDL, fare riferimento alle istanze del sito Web interno inaccessibile (http://127.0.0.1:5001/Service.svc?wsdl). Tuttavia, si prevede che gli URI nel documento WSDL per fare riferimento al sistema di bilanciamento del carico (http://127.0.0.1:81/Service.svc?wsdl). Inoltre, quando si tenta di aggiungere un riferimento al servizio, viene visualizzato un avviso di errore nella finestra di dialogo Aggiungi riferimento al servizio .

Problema 2

Si consideri lo scenario seguente:
  • Ospitare un servizio WCF in un'istanza dietro un bilanciamento del carico.
  • Utilizzare il comando "Aggiungi riferimento al servizio" o lo strumento della riga di comando svcutil.exe per scaricare i metadati del servizio.
In questo scenario, quando si tenta di generare un proxy dai metadati, il processo ha esito negativo poiché i metadati contengono gli URI che istanze di sito Web interno di riferimento.

Causa

Poiché il sistema di bilanciamento del carico è possibile accedere dall'esterno, si verificano i problemi descritti nella sezione "Sintomi". Tuttavia, le varianti di sito Web interno dietro il bilanciamento del carico non sono accessibili.

Risoluzione

Nota: Se si utilizza.NET Framework 3.5 Service Pack 1 su Windows 7 o Windows Server 2008 R2, installare l'hotfix descritto nell'articolo Microsoft Knowledge Base:
977420 un hotfix cumulativo è disponibile per risolvere i problemi in Windows Communication Foundation in.NET Framework 3.5 SP1 per Windows 7 e Windows Server 2008 R2

Informazioni sull'hotfix

Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Se il problema non causa gravi difficoltà, si consiglia di attendere il successivo aggiornamento software contenente tale hotfix.

Per scaricare questo hotfix da MSDN Code Gallery, visitare il seguente sito Web Microsoft:

Nota: MSDN Code Gallery vengono visualizzate le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua elencata, è perché la pagina delle risorse di Code Gallery non è disponibile per tale lingua.

Nota: Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:

Prerequisiti

Per applicare questo hotfix, è necessario disporre di.NET Framework 3.5 Service Pack 1 (SP1) o.NET Framework 3.0 Service Pack 2 (SP2) installato in uno dei seguenti sistemi operativi:
  • Windows XP
  • Windows Server 2003
  • Windows Vista SP2
  • Windows Server 2008 SP2

Nota: Per una versione di Windows 7 o Window Server 2008 R2 di questo hotfix, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
981002 Un hotfix cumulativo è disponibile per Windows Communication Foundation nel.NET Framework 3.5 SP1 per Windows 7 e Windows Server 2008 R2

Richiesta di riavvio

Non è necessario riavviare il computer dopo avere applicato questo hotfix.

Informazioni sulla sostituzione dell'aggiornamento rapido

Questo hotfix non sostituisce eventuali altri aggiornamenti rapidi.

Informazioni sui file

La versione inglese di questo hotfix presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di Data e ora nel Pannello di controllo.
versione basata su x86 per Windows XP e Windows Server 2003
Nome del fileVersione del fileDimensione del fileDataOraPiattaforma
Servicemonikersupport.dll3.0.4506.445617,25608-Dec-200923:03x86
Smdiagnostics.dll3.0.4506.4456110,59208-Dec-200923:03x86
System.identitymodel.dll3.0.4506.4456438,27208-Dec-200923:03x86
System.runtime.serialization.dll3.0.4506.4456970,75208-Dec-200923:03x86
System.servicemodel.dll3.0.4506.44565,984,25608-Dec-200923:03x86
System.servicemodel.washosting.dll3.0.4506.445632.76808-Dec-200923:03x86
versione basata su x64 di Windows XP e Windows Server 2003
Nome del fileVersione del fileDimensione del fileDataOraPiattaforma
Servicemonikersupport.dll3.0.4506.445619,30408-Dec-200922:24x64
Smdiagnostics.dll3.0.4506.445694,20808-Dec-200922:24x64
System.identitymodel.dll3.0.4506.4456397,31208-Dec-200922:24x64
System.runtime.serialization.dll3.0.4506.4456847,87208-Dec-200922:24x64
System.servicemodel.dll3.0.4506.44565,324,80008-Dec-200922:24x64
System.servicemodel.washosting.dll3.0.4506.445632.76808-Dec-200922:24x64
versione basata su x86 per Windows Vista SP2 e Windows Server 2008 SP2
Nome del fileVersione del fileDimensione del fileDataOraPiattaforma
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

versione basata su x64 di Windows Vista SP2 e Windows Server 2008 SP2
Nome del fileVersione del fileDimensione del fileDataOraPiattaforma
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

Versione Itanium di Windows Server 2008 SP2
Nome del fileVersione del fileDimensione del fileDataOraPiattaforma
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

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Ulteriori informazioni

Per attivare l'hotfix dopo l'installazione, è necessario configurare il servizio WCF per utilizzare il comportamento del servizio seguente:
<serviceBehaviors>   <behavior name="<name>">
<useRequestHeadersForMetadataAddress>
<defaultPorts>
<add scheme="http" port="81" />
<add scheme="https" port="444" />
</defaultPorts>
</useRequestHeadersForMetadataAddress>
</behavior>
</serviceBehaviors>

Nota: < nome > è un segnaposto che è opportuno sostituire con il nome di comportamento del servizio WCF.

La correzione rapida fa sì che WCF generare l'identificativo URI utilizzando l'intestazione "Host" HTTP della richiesta in arrivo dei metadati. In questo caso, l'intestazione "Host" contiene l'indirizzo di bilanciamento di carico anziché l'indirizzo del nodo interno.

Se un URI all'interno del documento WSDL ha uno schema differente rispetto lo schema dell'URI intestazione "Host", ad esempio, se arriva una richiesta per i metadati tramite HTTPS, ma i metadati contengono gli URI HTTP, la correzione sarà necessario il numero di porta per tale schema diverso. Per ciascun regime nella sezione < defaultPorts >, è possibile specificare il numero di porta.
Proprietà

ID articolo: 971842 - Ultima revisione: 31 gen 2017 - Revisione: 1

Feedback