我有一个使用古老的 ASMX 服务的项目。在使用 .Net Framework 4.6.1 时,我可以添加对该服务的引用,并且没有遇到任何问题。但是,一旦我将项目升级到 4.7 或 4.7.x,我就开始收到此错误:
'FlightSchedule': member names cannot be the same as their enclosing type
我得到了三种类型。除了代码中的错误之外,如果我尝试删除和添加服务或更新现有服务,还会收到以下警告:
Custom tool warning: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='DIAFlightScheduleHttpGet']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='DIAFlightSchedule']/wsdl:port[@name='DIAFlightScheduleHttpGet']
D:\Projects\...\Connected Services\FISAirline\Reference.svcmap 1
Custom tool warning: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='DIAFlightScheduleHttpPost']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='DIAFlightSchedule']/wsdl:port[@name='DIAFlightScheduleHttpPost']
D:\Projects\...\Connected Services\FISAirline\Reference.svcmap 1
Custom tool warning: Cannot import wsdl:binding
Detail: The required WSDL extension element 'binding' from namespace 'http://schemas.xmlsoap.org/wsdl/http/' was not handled.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='DIAFlightScheduleHttpGet']
D:\Projects\...\Connected Services\FISAirline\Reference.svcmap 1
Custom tool warning: Cannot import wsdl:binding
Detail: The required WSDL extension element 'binding' from namespace 'http://schemas.xmlsoap.org/wsdl/http/' was not handled.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='DIAFlightScheduleHttpPost']
D:\Projects\...\Connected Services\FISAirline\Reference.svcmap 1
我无法弄清楚这一点。如果我用谷歌搜索警告,会发现有更新 app.config 的指示,但没有协议可供我删除。如果我搜索错误,我找不到任何相关的内容。
我需要更新到最新的框架v4.8。
非常感谢任何帮助。
您是否尝试过删除服务引用并再次添加服务引用?这种古老的服务称为 XML Web 服务,而不是 WCF 服务。该错误通常表明在编译过程中对某些类定义的理解不明确(类的命名空间问题),这似乎与问题无关。 一般来说,XML Web服务与高版本的DotNet框架兼容。至少,我无法在我这边重现你的问题。
Xml Web 服务已过时。 BasicHttpBinding创建的WCF与传统的soap web服务很好地兼容。我建议你重新构建你的服务项目。或者,Asp.net WebAPI 可以创建现代 Web 服务,该服务在互联网上广泛使用。
如果有什么需要我帮忙的,请随时告诉我。
@DoomerDGR8 lo pudiste 解析器?