2010-12-21 91 views
1

我創建了一個小型WCF服務(託管在IIS中),並使用Chrome將它的wsdl放入.wsdf文件中,然後使用svcutil test.wsdl生成客戶端代理它,但我得到這個錯誤:錯誤:無法使用svcutil導入wsdl:port

Error: Cannot import wsdl:port Detail: There was an error importing a wsdl:binding that the wsdl:port is depend ent on. XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:binding[@name='WSHttpBinding_IService1'] XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:service[@name='Service1']/wsdl:port[@name='WSHttpBinding_IService1']

任何其他人遇到此問題,並找到了解決方案嗎?

更新:如約翰桑德斯建議,謝謝你,它的作品,當我直接指出它的網址。然而,這是我的小測試用例,看看svcutil可以做什麼,因爲我預計未來幾天將從第三方獲取wsdl文件,並可能遇到同樣的問題。由於我採用了最簡單的方式生成.svc,我似乎沒有包含塊。

+3

我敢打賭,它告訴你它到底有什麼問題。你確定這是所有的錯誤輸出?另外,當您將服務的URL直接指定給svcutil.exe時會發生什麼? – 2010-12-22 00:58:28

回答

3

如果wsdl中有Include塊 - 並且它們通常在由WCF生成時執行 - 那麼您可能只保存'main'wsdl文件而不是所有參考文件。

這樣做的結果是主文件沒有任何意義。正如John Saunders所說,嘗試將URL提供給svcutil.exe而不是保存文件。

+1

對於任何未來的搜索者:我遇到了WSCF.blue插件的問題,它的根本原因是相同的。您可以通過將所有包含的導入複製到WSDL文件中來手動組裝WSDL來生成一次性代理。這並沒有解決我的問題(這是一個蹩腳的解決方法),但它是一個有用的診斷技巧,以確認問題出在哪裏。 – 2012-04-24 21:28:39

相關問題