当前位置: 首页 > 知识库问答 >
问题:

.NET Core 3.1导入WSDL错误-如何解决?

酆翔宇
2023-03-14

我正在尝试将一些服务器代码从.NET4.7迁移到.NET Core3.1,这样我们就可以在Linux主机上运行了。

有两个使用SOAP连接的服务。其中一个移植时没有任何更改,但另一个在使用WSDL文件导入时出现错误:

http://uat.risc.enexusrental.co.uk/soap/dividualservice.php?wsdl

我不是SOAP专家,只使用过通过导入WSDL文件生成的代码,所以这些错误对我来说并不意味着什么。

为了简化调试,我创建了简单的命令行应用程序,一个用于.NET4.7,另一个用于Core3.1。

导入在.NET4.7中工作得很好,我可以调用服务(正如预期的那样)。

导入Core 3.1时会出现上述错误,当调用客户端初始化时,返回以下错误:

有人能解释一下这些错误的实际含义吗(我不是SOAP专家),如果可能的话,我需要做些什么来解决这些错误?

共有1个答案

许黎明
2023-03-14

将WSDL下载到文件中,并通过删除相应的WSDL:bindingWSDL:port元素手动删除不支持的GET和POST绑定。然后,您可以使用工具(dotnet-svcutil或Visual Studio/IDE)生成客户端代码(服务引用)。

    --- a/service.wsdl
    +++ b/service.wsdl
    @@ -286,37 +286,6 @@
           </wsdl:output>
         </wsdl:operation>
       </wsdl:binding>
    -  <wsdl:binding name="IndividualServiceHttpGet" type="tns:IndividualServiceHttpGet">
    -    <http:binding verb="GET" />
    -    <wsdl:operation name="SearchByLastNameAndDateOfBirth">
    -      <http:operation location="/SearchByLastNameAndDateOfBirth" />
    -      <wsdl:input>
    -        <http:urlEncoded />
    -      </wsdl:input>
    -      <wsdl:output>
    -        <mime:mimeXml part="Body" />
    -      </wsdl:output>
    -    </wsdl:operation>
    -    <wsdl:operation name="SearchByDrivingLicenceNumber">
    -      <http:operation location="/SearchByDrivingLicenceNumber" />
    -      <wsdl:input>
    -        <http:urlEncoded />
    -      </wsdl:input>
    -      <wsdl:output>
    -        <mime:mimeXml part="Body" />
    -      </wsdl:output>
    -    </wsdl:operation>
    -    <wsdl:operation name="Get">
    -      <http:operation location="/Get" />
    -      <wsdl:input>
    -        <http:urlEncoded />
    -      </wsdl:input>
    -      <wsdl:output>
    -        <mime:mimeXml part="Body" />
    -      </wsdl:output>
    -    </wsdl:operation>
    -  </wsdl:binding>
    -  <wsdl:binding name="IndividualServiceHttpPost" type="tns:IndividualServiceHttpPost">
         <http:binding verb="POST" />
         <wsdl:operation name="SearchByLastNameAndDateOfBirth">
           <http:operation location="/SearchByLastNameAndDateOfBirth" />
    @@ -354,11 +323,5 @@
         <wsdl:port name="IndividualServiceSoap12" binding="tns:IndividualServiceSoap12">
           <soap12:address location="http://uat.risc.enexusrental.co.uk/SOAP/IndividualService.php" />
         </wsdl:port>
    -    <wsdl:port name="IndividualServiceHttpGet" binding="tns:IndividualServiceHttpGet">
    -      <http:address location="http://uat.risc.enexusrental.co.uk/SOAP/IndividualService.php" />
    -    </wsdl:port>
    -    <wsdl:port name="IndividualServiceHttpPost" binding="tns:IndividualServiceHttpPost">
    -      <http:address location="http://uat.risc.enexusrental.co.uk/SOAP/IndividualService.php" />
    -    </wsdl:port>
       </wsdl:service>
     </wsdl:definitions>
 类似资料:
  • 我是python的新手。我使用anaconda Jupiter笔记本,我尝试使用一个名为weka的模块,我用pip安装了它。但现在我发现了这个错误: 文件“C:\ProgramData\Anaconda3\lib\site packages\IPython\core\interactiveshell.py”,第2961行,运行代码exec(代码obj、self.user、self.user) Fi

  • 我试图从不同的目录级别导入模块,因此我使用: 但现在我得到了这个错误。我正在使用Spyder,第一次使用以下导入时,它运行良好。 从第二次我得到这个错误。 文件“ipython-input-29-f35dfe634c32”,第1行,在模块运行文件中('C:/Users/nrshakya/Documents/CI/src/Comp\u IntelPython/CI\u search\u projec

  • 我正试着用这本手册开始tensorflowhttps://www.tensorflow.org/install/install_windows 所有安装都成功完成,我正在使用python 3.5.2和最新版本的pip,遇到这个错误,有人告诉我应该怎么做吗? 在swig\parth\AppData\Local\Programs\Python35\lib\site-p tensorflow\Pytho

  • 我被以下代码的顺序错误卡住了,您可以通过google colab链接看到:https://colab.research.google.com/drive/1Tc8WEzqBMRd0Eg7pJijI98eBEKTw45s3?usp=sharing 如果代码对您不可见,您可以从GitHub访问它:https://github.com/nephashi/GaitRecognitionCNN 我如何让它解

  • 我在导入包含单引号的csv文件时有问题。在我的csv文件中,一些带有单引号(撇号)的数据像这样。 这是错误的,因为我想像保存。我不知道为什么它节省了很多单引号。请给我建议我该如何解决它。