2010-03-02 66 views
5



我們使用WCF服務開發了Web服務,並使用IIS 5.1託管在Windows 2003服務器上。 WCF託管在basicHttpBinding

當試圖訪問wsdl的服務「* .svc?wsdl」它生成錯誤的wsdl,那wsdl不能用於java和php客戶端。
當我檢查在
WCF wsdl wsdl:導入位置,soap:地址位置是否有機器名?

<wsdl:import namespace="xxxxx" location="http://machine name/xxx/xxx.svc?wsdl=wsdl0"/> 
<soap:address location="http://machine name/xcxx/xxx.svc" /> 

我怎樣才能把機器和我的網站的網址替換它的WSDL?
如何生成完整的WSDL文檔,如ASMX Web服務將生成的內容?

回答

2


我瀏覽網絡,並得到了我的問題的解決方案 以下幫助了我很多。
希望這些會對其他人有所幫助。


NRK

對於產生平坦WSDL
http://my-tech-talk.blogspot.com/2008/07/adding-flatwsdl-to-wcf-webservice.html
http://weblogs.thinktecture.com/cweyer/2007/05/improving-wcf-interoperability-flattening-your-wsdl.html
http://isinghblog.blogspot.com/2009/03/wcf-service-and-adobe-livecycle_10.html

對於chaning主機名,這將在WSDL地址反映
http://forums.asp.net/p/1096811/1659596.aspx

3

以下是我固定它:

  1. 在你的IIS綁定中,一定要包含一個主機名。

  2. 安裝此修補程序:http://support.microsoft.com/kb/971842。 KB頁面上有鏈接以下載此修補程序。該修補程序需要我重新啓動。

  3. 「激活」修補程序,添加以下行爲的元素你的web.config:

 
    <useRequestHeadersForMetadataAddress> 
     <defaultPorts> 
      <add port="80" scheme="http" /> 
      <add port="443" scheme="https" /> 
     </defaultPorts> 
    </useRequestHeadersForMetadataAddress> 
+0

這奏效了我。謝謝! – 2011-12-19 17:00:34

+0

Matt,http://archive.msdn.microsoft.com/KB971842 hofix明確表示它不適用於Win 2003服務器。你是如何將它應用到2003年的? – Roger 2011-12-27 18:00:09

+0

@Roger,實際上它特別說明如果您使用的是Windows 7或Windows Server 2008 R2,那麼您應該應用不同的修補程序(KB971842)。如果你在Windows 2003上,那麼你應該應用KB971842的修補程序。 http://code.msdn.microsoft.com/KB971842 – 2013-04-22 15:33:29