2011-07-28 118 views
0

我的Web服務託管在IIS我的服務器上,當我嘗試下載它給了我一個錯誤的服務元數據的計算機名稱:遠程名稱無法解析:win2008x64(服務器名) 。在服務器上,我有2個綁定,一個http,另一個是https ..
我該如何解決此問題?

編輯:
WCF Web服務元數據包含

The document was understood, but it could not be processed. 
    - The WSDL document contains links that could not be resolved. 
    - There was an error downloading 'http://win2008x64:1668/Service.svc?xsd=xsd0'. 
    - The remote name could not be resolved: 'win2008x64' 
Metadata contains a reference that cannot be resolved: 'http://89.x.x.x:166x/Service.svc?wsdl'. 
Metadata contains a reference that cannot be resolved: 'http://89.x.x.x:166x/Service.svc?wsdl'. 
If the service is defined in the current solution, try building the solution and adding the service reference again. 

預先感謝。

+0

a:客戶端可以通過名稱ping服務器嗎? b:當您在瀏覽器中瀏覽端點時會發生什麼? –

+0

是的,當然它可以ping通,我可以訪問瀏覽器端點,但它顯示在這個頁面上: svcutil.exe https:// win2008x64:1667/Service.svc?wsdl win2008x64是問題,它應該給ip .. – croisharp

回答

2

我曾經在CodePlex上WcfExtrashow to use)項目來處理這種問題。如果您的服務器位於某種代理的後面,這也很有用。您只需要定義一個位置屬性並覆蓋您的服務的URL:

<endpointBehaviors> 
    <behavior name="Sample.WsdlSampleEndpointBehavior"> 
     <wsdlExtensions location="http://127.0.0.1/Sample/WsdlSample.svc" /> 
    </behavior> 
    </endpointBehaviors> 
1

嘗試生成使用你的服務器的IP地址的WSDL。如果它是公共服務器使用外部IP(whatsmyip.org),可能只是一個Dns問題。

+0

嘗試使用您的服務器的IP地址生成wsdl。 如何? 在客戶端我產生過當然IP代理類.. – croisharp

+0

https://開頭win2008x64:1667/Service.svc XSD = xsd1,我發現這個在我的WSDL,如何將win2008x64更改爲IP? – croisharp

+0

我有一個類似的場景,這個其他業務暴露了WCF服務,並且它有wsdl文件中的服務器名稱。我認爲使用ServerName是WSDL是WCF的默認行爲(根據此線程http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/ec88418b-0177-44e2-bbd0-0daa85e34615 /)。我用服務器的IP地址svcutil,它工作正常。糾正我,如果我錯了,但是你真正的問題是不公開服務器的名稱? – Raghu