.NET SOAP客户端使用:Array

时间:2016-07-11 14:22:59

标签: .net soap wsdl

我正在尝试添加位于此处的SOAP端点:http://ds.hitpromo.net/product

但是我收到以下错误:

  

脚手架代码...错误:错误:无法导入wsdl:portType详细信息:   运行WSDL导入扩展时抛出异常:   System.ServiceModel.Description.XmlSerializerMessageContractImporter   错误:数据类型“http://schemas.xmlsoap.org/soap/encoding/:Array”   不见了。 XPath到错误源:   // WSDL:定义[@的targetNamespace = '瓮:ProductControllerwsdl'] / WSDL:portType的[@名称= 'ProductControllerPortType']   错误:无法导入wsdl:binding详细信息:导入时出错   wsdl:binding依赖的wsdl:portType。 XPath到   WSDL:端口类型:   // WSDL:定义[@的targetNamespace = '瓮:ProductControllerwsdl'] / WSDL:portType的[@名称= 'ProductControllerPortType']   XPath到错误源:   // WSDL:定义[@的targetNamespace = '瓮:ProductControllerwsdl'] / WSDL:结合[@名称= 'ProductControllerBinding']   错误:无法导入wsdl:port

     

详细信息:导入wsdl:绑定wsdl:port时出错   依赖于。 XPath到wsdl:binding:   // WSDL:定义[@的targetNamespace = '瓮:ProductControllerwsdl'] / WSDL:结合[@名称= 'ProductControllerBinding']   XPath到错误源:   // WSDL:定义[@的targetNamespace = '瓮:ProductControllerwsdl'] / WSDL:服务[@名称= 'ProductControllerService'] / WSDL:端口[@名称= 'ProductControllerPort']   错误:找不到与.Net Core应用程序兼容的端点。一个   工具发生错误。

     

无法生成服务参考。

据我所知,这是因为.NET的SOAP生成代码不能理解包含来自xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"的类型我已经阅读过关于手动包含它的类型但方向不清楚(包括关于此主题的其他StackOverflow答案) ),下载WSDL并使用import / include无效。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我尝试了给定的地址http://ds.hitpromo.net/product并成功将其作为服务引用添加到项目中而没有任何问题。

将它添加为Web Reference可能会帮助您。你可以试试"添加服务参考" =>选择"高级" =>然后选择"添加Web参考"并从那里添加。

过去,将端点添加为Web引用可以解决一些类似的问题。

答案 1 :(得分:1)

你可以尝试几件事:

1。)创建wsdl的本地副本并删除有问题的xml名称空间。然后,将服务引用添加到本地副本时。

2。)尝试将服务作为Web引用而不是服务引用。添加服务参考=>高级=>添加Web引用。

3.)你可能不得不回到.Net 4.x,因为.Net对SOAP服务的支持可能还不够成熟,无法处理遗留的WSDL。

我的情况有点类似于.Net 4.5和WCF - 这是一个链接:How can I create custom XML namespace attributes when consuming a legacy SOAP service?