2012-08-25 50 views
1

我使用WCF服務在Windows Azure上創建了一個站點。當我引用它,並試圖調用它,我得到這個錯誤:名稱解析失敗,Windows Azure

未處理的異常信息:System.Net.WebException:錯誤:NameResolutionFailure 在System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult的asyncResult)[0x00000]中:0 at System.Net.HttpWebRequest.GetRequestStream()[0x00000] in:0 at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(System.String method_name,System.Object [] parameters)[0x00000] in:0

我的web服務解析爲主機名而不是IP地址。在Windows Azure中,是否需要添加特殊設置才能使用Web服務?

+1

你能詳細說一下嗎?您是否嘗試從Azure上的Azure上訪問Azure上的WCF服務?或者你是否試圖從其他地方訪問WCF服務?如果他們都在Azure上,他們有不同的角色嗎?應用程序試圖使用的URL是什麼? –

回答

0

根據您提供的信息,您似乎有一個在Windows Azure中運行的WCF Web角色,當您嘗試訪問它時會出錯。

當你在Windows Azure中承載的WCF的網站,你將有如下的服務網址: http://your_service_name.cloudapp.net/servicename/methodname

您還需要在WCF服務已正確結合,因此它可以從任何客戶端進行訪問。這是大多數問題發生的地方,因爲錯誤或錯誤的綁定會將服務關閉,因此無法連接。您還可以驗證您的WCF服務在從瀏覽器訪問時返回正確的WSDL信息。這是檢查服務參考URL的測試。你有沒有驗證那部分?

當您嘗試在您的客戶端應用程序中引用它時,您將使用上面的引用URL來列出內置的函數,並且您可以使用它。使用Windows Azure,您的服務必須解析爲主機名(不是IP地址,因爲它可能會更改爲VIP),因此它是正確的。

如果您可以從服務獲取WSDL,但仍然無法獲取引用,那麼您仍然可以嘗試通過綁定端點URL(在Azure上)直接在代碼中使用服務,然後使用綁定和端點創建通道。