2014-02-10 162 views
2

我有一個Web服務,我想連接到,我無法弄清楚wsdl出了什麼問題。svcutil不生成肥皂客戶端

wsdl位於「http://marketplacebylaredoute.fr/spapi/SellerOrderService?wsdl」。然後我嘗試運行svcutil http://marketplacebylaredoute.fr/spapi/SellerOrderService?wsdl並失敗。 的錯誤是以下(僅提取)

Error: Cannot import wsdl:portType 
Detail: An exception was thrown while running a WSDL import extension: System.Se 
rviceModel.Description.XmlSerializerMessageContractImporter 
Error: These members may not be derived. 
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://Redcats/Order 
/SellerOrder/2.0']/wsdl:portType[@name='portType'] 

任何想法可能是錯這個WSDL?

+0

[Wsdl.exe用錯誤:無法導入綁定 '...' 從命名空間 '...']的可能重複(HTTP://計算器。 com/questions/77534/wsdl-exe-error-unable-to-import-binding-from-namespace) – CodeCaster

回答

8

的問題來自於<wsdl:part>就像這樣:

<wsdl:part element="ns5:UpdateSellerOrderRequest_2.0" name="parameters"> 

name="parameters",svcutil.exe的認爲,服務是文檔/文字/包。

如果將其更改爲parameters以外的其他名稱,svcutil.exe會將其解釋爲doc/literal/bare。

解決的辦法是:

使用Fiddler創建改變parametersparameters1代理。對於

快速和骯髒的代碼:

static function OnBeforeResponse(oSession: Session) { 
    if (m_Hide304s && oSession.responseCode == 304) { 
     oSession["ui-hide"] = "true"; 
    } 
    oSession.utilDecodeResponse(); 
    oSession.utilReplaceInResponse('parameters', 'parameters1'); 

} 
+0

經過2天的指責,wsdl.exe工作正常!非常感謝! –

+0

真棒,終於爲我工作了! 。如果你不介意,你怎麼知道這是問題?任何工具? – Chandan

+1

@Chandan它來自這篇博文:http://webservices20.blogspot.fr/2010/01/interoperability-gotcha-these-members.html – Swell