无法在VS2017中从WSDL生成代理

时间:2018-02-15 16:19:28

标签: c# web-services soap wsdl

我有一个WSDL,我尝试从Visual Studio 2017中生成客户端代理。

  1. 右键单击项目名称(WinForm)
  2. 添加>服务参考
  3. 粘贴WSDL adr
  4. 点击确定
  5. 现在我收到1条错误和20条警告

    错误

      

    严重级代码描述项目文件行抑制状态   错误自定义工具错误:无法为服务生成代码   参考' ServiceReference1'。请检查其他错误和警告   消息   细节。 WindowsFormsApp1 c:\ users \ Me \ source \ repos \ WindowsFormsApp1 \ WindowsFormsApp1 \ Connected   Services \ ServiceReference1 \ Reference.svcmap 1

    警告(其中一些)

      

    严重级代码描述项目文件行抑制状态   警告自定义工具警告:无法导入wsdl:port详细信息:有   导入wsdl:port依赖的wsdl:binding时出错   上。 XPath到wsdl:binding:   //wsdl:definitions[@targetNamespace='MyTest.GetInformation:v2']/wsdl:binding[@name='GetInformationBinding']   XPath到错误源:   //wsdl:definitions[@targetNamespace='MyTest.GetInformation:v2']/wsdl:service[@name='GetInformationService']/wsdl:port[@name=' ; GetInformationPort'] WindowsFormsApp1 c:\ users \ Me \ source \ repos \ WindowsFormsApp1 \ WindowsFormsApp1 \ Connected   Services \ ServiceReference1 \ Reference.svcmap 1

         

    严重级代码描述项目文件行抑制状态   警告自定义工具警告:无法导入wsdl:binding详细信息:存在   导入wsdl:绑定的wsdl:portType时出错   依赖于。 XPath到wsdl:portType:   //wsdl:definitions[@targetNamespace='MyTest.GetInformation:v2']/wsdl:portType[@name='GetInformationInterface']   XPath到错误源:   //wsdl:definitions[@targetNamespace='MyTest.GetInformation:v2']/wsdl:binding[@name='GetInformationBinding'] WindowsFormsApp1 c:\ users \ Me \ source \ repos \ WindowsFormsApp1 \ WindowsFormsApp1 \连接   Services \ ServiceReference1 \ Reference.svcmap 1

         

    严重级代码描述项目文件行抑制状态   警告自定义工具警告:无法导入wsdl:portType详细信息:An   运行WSDL导入扩展时抛出异常:   System.ServiceModel.Description.XmlSerializerMessageContractImporter   错误:数据类型   ' MyTest.attentionSignal:V1:II'是   失踪。 XPath到错误源:   //wsdl:definitions[@targetNamespace='MyTest.GetInformation:v2']/wsdl:portType[@name='GetInformationInterface'] WindowsFormsApp1 c:\ users \ Me \ source \ repos \ WindowsFormsApp1 \ WindowsFormsApp1 \连接   Services \ ServiceReference1 \ Reference.svcmap 1

    SoapUI 5.3.0可以从同一个WSDL生成代理,我也可以通过在VS2017中使用Web Reference(compability mode 2.0)来生成代理。然而,后来的解决方案不适合我,因为我有来自此WSDL的v1的代码,我想重用它。

    编辑:

    这是WSDL,在VS 2017中将其添加为服务引用,您应该看到问题: https://1drv.ms/u/s!AskujIssKpne6170QEQdCLrkG8-u

1 个答案:

答案 0 :(得分:-3)

  • 你应该使用浏览器在本地下载wsdl然后按照你的休息 步骤
  • 右键单击项目名称(WinForm)
  • 添加>服务参考
  • 粘贴WSDL本地路径并单击“确定”

更新: 如果以上方式不起作用。您可以尝试其他方式   - 使用以下命令通过XSD.exe创建Web代理

right-hand array
  • 这将生成代理类,您可以将其复制/移动到项目中并使用它。