我有一个针对.NET Core的应用程序。 当我尝试导入wsdl文件时,出现以下错误。
Scaffolding Code ...
Error:Error: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: Schema with target namespace 'http://xml.amadeus.com/2010/06/Session_v3' could not be found.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://xml.amadeus.com']/wsdl:portType[@name='AmadeusWebServicesPT']
Warning: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://xml.amadeus.com']/wsdl:portType[@name='AmadeusWebServicesPT']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://xml.amadeus.com']/wsdl:binding[@name='AmadeusWebServicesBinding']
Warning: Cannot import wsdl:port
Detail:
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://xml.amadeus.com']/wsdl:service[@name='AmadeusWebServices']/wsdl:port[@name='AmadeusWebServicesPort']
Error: No endpoints compatible with .Net Core apps were found.
An error occurred in the tool.
Failed to generate service reference.
该问题有解决方案或解决方法吗?
感谢。
修改
我已经找到了问题所在。要重新生成存根,我需要直接从命令行运行“svcutil.exe”(或在某个虚拟C#项目中生成存根),因为WCF连接服务无法从此WSDL生成存根。
关于wsdl的生成代码使用.Net Standard 1.6不支持的以下属性。
SerializableAttribute,DesignerCategoryAttribute
当我手动创建这两个属性时,我就能够构建我的应用程序。
答案 0 :(得分:1)
我们可以通过addservices
或dotnet-svcutil
工具以两种方式添加服务。
问题是您的Web服务终结点的WSDL使用另一种方式存储XML操作数据。正如Henk所指出的,这里的解决方案是在手动运行dotnet-svcutil
工具时使用包装标志。
请按照以下步骤操作:
<ItemGroup>
节点内:<DotNetCliToolReference Include="dotnet-svcutil" Version="1.0.*" />
dotnet restore
dotnet svcutil https://smp.difi.no/ws/2.0?wsdl -wr