2012-06-23 131 views
5

雖然加入了啓用HTTPS WCF服務爲通過Visual Studio 2010 IDE服務的參考,下面出現異常無法添加HTTPS啓用WCF服務在Visual Studio的服務參考2010 IDE

There was an error downloading 'https://abc.cloudapp.net/DataService.svc'. The request failed with HTTP status 403: Forbidden. Metadata contains a reference that cannot be resolved: 'https://abc.cloudapp.net/DataService.svc'. The HTTP request was forbidden with client authentication scheme 'Anonymous'. The remote server returned an error: (403) Forbidden. If the service is defined in the current solution, try building the solution and adding the service reference again.

請建議我一個解決方案。

+0

這可能有所幫助:http://stackoverflow.com/a/8039477/802799 –

回答

0

我之前遇到過這個問題,請嘗試添加http://abc.cloudapp.net/DataService.svc(沒有https的情況下正確),並且一旦添加了服務,請將web.config文件中的更改從http更改爲https。

+0

但是當運行時第一次調用合同時,這仍會拋出錯誤。 – rajnish

3

問題是元數據綁定。您必須允許https GET爲元數據和服務本身使用相同的URL。

<serviceMetadata httpsGetEnabled="true" /> 

這將允許WCF通過HTTPS提供元數據。

+0

是的..我確實將httpsGetEnabled設置爲true .. – rajnish

0

你可以在IE上訪問基於https的URL並獲取WSDL嗎?如果你可以在沒有任何問題的情況下在IE中獲得WSDL,那麼你的計算機上安裝了證書,VS以某種方式無法使用客戶端證書並返回此錯誤。如果您的計算機無法獲得WSDL,那麼您需要首先在您的機器上安裝客戶端證書,然後重試。

如果您想用Visual Studio解決此問題,可以使用IE獲取HTTPs WCF服務元數據wsdl頁面並將WSDL保存到本地計算機上。之後,打開VS2010,當你選擇「添加ServiceReference」時,路由到你的機器上保存的WSDL元數據文件,這樣你的安全WCF服務的代理類將被生成,你仍然可以使用它。

+0

我們遵循的方法是,我們創建了一個WSDL的平面文件,然後使用svcutil.exe生成代理類。但是我們仍然遇到這個問題。 「」無法爲權限爲'127.0.0.1'的SSL/TLS安全通道建立信任關係。「」使用SSL的想法是服務器必須認證客戶端,然後才能提供請求。我們在使用服務之前共享客戶端證書及其密碼。當客戶端調用操作契約(方法)時出現錯誤,因爲服務器可能沒有驗證客戶端的身份 – rajnish

0

我的問題已通過將我的證書添加到瀏覽器中解決。

打開Internet Explorer - > Internet選項 - >轉到內容 - >點擊證書 - >導入證書到個人或受信任的發佈者

然後嘗試使用WCF服務,它會發出警告你一條消息,但點擊確定,這將解決問題。

如果不解決,導入服務器相同的證書按個人或信任的人

7

另一種可能的解決方案是確保Visual Studio中知悉的證書管理器設置它使用的證書。

打開憑證管理器並在憑證憑證憑證單擊添加基於證書的憑證。

輸入服務參考的URL並從商店中選擇證書。

+0

Golden!如果服務需要客戶端證書並且您的開發人員擁有該證書,則這是答案。 –