FIX: 如預期般在.NET Framework 3.0 中,Windows Server 2003,Windows XP,Windows Vista 和 Windows Server 2008 中,WCF WSDL 文件中的 URI 參考到無法存取內部而不是要執行個體負載平衡器

文章翻譯 文章翻譯
文章編號: 971842 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

當您在 Windows Server 2003,Windows XP,Windows Vista 和 Windows Server 2008 中的 Microsoft.NET Framework 3.0 中的負載平衡的案例中使用 Windows 通訊基礎 (WCF) 服務時,您會遇到一或多個下列的問題:

問題 1

考慮下列案例::
  • 您已經安裝 Windows Azure SDK 和 Windows Microsoft Visual Studio 的 Azure 工具。
  • 您建立 Web 雲霧服務專案,並加入至專案的 Windows 通訊基礎 (WCF) 服務。
  • 您偵錯專案開發結構中。
  • 您瀏覽至 Web 服務定義語言 (WSDL) 文件的 [WCF 服務。
在此的情況下您注意到 WSDL 文件中的 URI 參考到無法存取內部網站執行個體 (http://127.0.0.1:5001/Service.svc?wsdl)。 但是,您預期 URI 參考負載平衡器的 WSDL 文件中 (http://127.0.0.1:81/Service.svc?wsdl)。 此外,在加入服務參考時您收到失敗請注意,在加入服務參考對話方塊。

問題 2

考慮下列案例::
  • 您裝載執行個體背後的負載平衡器上的 WCF 服務。
  • 使用 「 加入服務參考 」 命令或svcutil.exe命令列工具,以下載來自服務的中繼資料。
在此的情況下當您嘗試從的中繼資料產生 Proxy 處理程序會失敗因為中繼資料包含 URI 該參考內部網站例項。

發生的原因

負載平衡器從外部存取,就會發生 < 徵狀 > 一節中所述的問題。 但是,背後的負載平衡器 [內部網站] 執行個體都無法存取。

解決方案

Hotfix 資訊

Microsoft 提供支援的 Hotfix 。。 不過,此 Hotfix 旨在修正本文中所述隨問題。。 套用此 Hotfix,會發生此特定問題的系統。 這個 Hotfix 可能會接受額外的測試。。 因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果要下載此 Hotfix,從 MSDN 程式碼庫,請造訪下列 Microsoft 網站:
http://code.msdn.microsoft.com/KB971842

附註MSDN 程式碼庫顯示 Hotfix 是可使用的語言。 如果您沒有列出您的語言,是因為程式碼庫的 [資源] 頁面並不會提供該語言的支援。

附註如果發生其他的問題,或任何疑難排解是需要您可能必須建立個別的服務要求。 和此 Hotfix 無關的額外支援問題適用一般的支援費用。。 如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站::
http://support.microsoft.com/contactus/?ws=support

必要條件

o 套用此 Hotfix,您必須在.NET Framework 3.5 Service Pack 1 (SP1) 或 [.NET Framework 3.0 Service Pack 2 (SP2) 安裝在下列作業系統中的其中一個:
  • Windows XP
  • Windows Server 2003
  • Windows Vista SP2
  • Windows Server 2008 SP2

附註此 Hotfix 的 Windows 7 或視窗 Server 2008 R2 版,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
981002Hotfix 的彙總套件適用於 Windows.NET Framework 3.5 SP1 的 Windows 7 和 Windows Server 2008 R2 的通訊基礎

重新啟動需求

您沒有在您套用此 Hotfix 之後重新啟動電腦。

Hotfix 取代資訊

此 Hotfix 不會取代任何其他的 Hotfix。

檔案資訊

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。。 這些檔案的日期和時間為 Coordinated Universal Time (UTC)。。 當您檢視檔案資訊時,會將它轉換為本地時間。 使用 [到要查看 UTC 與當地時間的差異,時區在索引標籤上,日期和時間控制項中的項目面板。
x86 為主的 Windows Vista SP2 和 Windows Server 2008 SP2 的版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Servicemonikersupport.dll3.0.4506.414317,2402009-08-年 7 月12: 26x86
System.runtime.serialization.dll3.0.4506.4143970,7522009-08-年 7 月12: 26x86
System.servicemodel.dll3.0.4506.41435,939,2002009-08-年 7 月12: 26x86

x64 為主的 Windows Vista SP2 和 Windows Server 2008 SP2 的版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Servicemonikersupport.dll3.0.4506.414319,2882009-08-年 7 月12: 26x64
System.runtime.serialization.dll3.0.4506.4143847,8722009-08-年 7 月12: 26x64
System.servicemodel.dll3.0.4506.41435,275,6482009-08-年 7 月12: 26x64

Windows Server 2008 SP2 Itanium 架構版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Servicemonikersupport.dll3.0.4506.414333,6402009-08-年 7 月12: 27IA 64
System.runtime.serialization.dll3.0.4506.4143847,8722009-08-年 7 月12: 26IA 64
System.servicemodel.dll3.0.4506.41435,275,6482009-08-年 7 月12: 26IA 64

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。。

其他相關資訊

若要啟用 Hotfix,您在安裝之後,您必須設定 WCF 服務,才能使用下列服務行為:
<serviceBehaviors>
   <behavior name="<name>">
     <useRequestHeadersForMetadataAddress>
       <defaultPorts>
          <add scheme="http" port="81" />
          <add scheme="https" port="444" />
        </defaultPorts>
      </useRequestHeadersForMetadataAddress>
   </behavior>
</serviceBehaviors>

附註<name></name>您應該在 WCF 服務取代行為名稱的預留位置。

Hotfix 會讓 WCF 使用傳入的中繼資料要求主機 HTTP 標頭來產生正確的 URI。 在這種情況下 [主持] 標頭會包含負載平衡器位址,而非內部的節點位址。

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>

屬性

文章編號: 971842 - 上次校閱: 2010年12月1日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft .NET Framework 3.0
  • Microsoft .NET Framework 3.0 Service Pack 1
  • Microsoft .NET Framework 3.0 Service Pack 2
關鍵字:?
kbexpertiseadvanced kbsurveynew kbqfe kbmt KB971842 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:971842
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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