我有一个我想连接的Web服务,我无法弄清楚wsdl出了什么问题.
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']
Run Code Online (Sandbox Code Playgroud)
知道这个wsdl可能有什么问题吗?
问题来自于<wsdl:part>这样的问题:
<wsdl:part element="ns5:UpdateSellerOrderRequest_2.0" name="parameters">
Run Code Online (Sandbox Code Playgroud)
当name="parameters",svcutil.exe认为该服务是doc/literal/wrapped.
如果将其更改为其他内容parameters,则svcutil.exe会将其解释为doc/literal/bare.
解决方案是:
使用Fiddler创建更改parameters为的代理parameters1.
快速而脏的代码:
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
oSession.utilDecodeResponse();
oSession.utilReplaceInResponse('parameters', 'parameters1');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1201 次 |
| 最近记录: |