关于使用.NET调用通用非.NET web服务的基本问题

关于使用.NET调用通用非.NET web服务的基本问题,.net,.net,我曾有过调用.NET asmx和svc服务的经验,但大部分情况下都依赖Visual Studio的添加Web引用向导来生成我用来调用Web服务的代理。我意识到使用此向导可能不是理想的方法,但这可能是另一个单独的主题,我的问题更基本: 我得到了一个WSDL和一堆xsd文件。然后我浏览WSDL,寻找一个似乎是我们公司内部的URL,并将其复制粘贴到“添加服务引用”对话框中 https://a-entesb.sys.MyCompany.com:64005/MemberServicesGatewayG7W

我曾有过调用.NET asmx和svc服务的经验,但大部分情况下都依赖Visual Studio的添加Web引用向导来生成我用来调用Web服务的代理。我意识到使用此向导可能不是理想的方法,但这可能是另一个单独的主题,我的问题更基本:

我得到了一个WSDL和一堆xsd文件。然后我浏览WSDL,寻找一个似乎是我们公司内部的URL,并将其复制粘贴到“添加服务引用”对话框中

https://a-entesb.sys.MyCompany.com:64005/MemberServicesGatewayG7Web/sca/ComeFolder
当我按下“go”按钮时,出现了以下错误:

The HTML document does not contain Web service discovery information.
Metadata contains a reference that cannot be resolved: 'https://a-entesb.sys.MyCompany.com:64005/MemberServicesGatewayG7Web/sca/SomeFolder'.
Metadata contains a reference that cannot be resolved: 'https://a-entesb.sys.MyCompany.com:64005/MemberServicesGatewayG7Web/sca/SomeFolder'.
If the service is defined in the current solution, try building the solution and adding the service reference again.
当我使用浏览器导航到URL时,首先会收到一条警告,说明安全证书已过期。当我单击“确定继续”时,我会收到一条HTML消息:

<h1>Hello! This is an Axis2 Web Service! <h1>
你好!这是一个Axis2 Web服务!
请注意,我正在使用的web服务url不包含文件后缀,如.asmx或svc,但同样,此web服务可能不是使用Microsoft工具开发的。但是,我知道web服务应该是通用的,我想知道“添加服务引用”向导是否应该能够检测任何web服务并为我生成一个代理对象,前提是url是正确的

我不认为我会从主持这项服务的技术人员那里得到什么帮助。我想他们甚至都没写过


过期的证书会干扰我调用服务的能力吗?

您需要使用指向WSDL文件的URL,或者将文件和关联的XSD文件保存到磁盘位置,然后将指向该位置的路径传递到“添加服务引用”。

我试图在本地PC上指向WSDL,但是我认为跟随一系列引用的xsd文件并最终找到一些我没有提供的文件是很累的。或者,询问WSDL的URL。他们告诉我他们已经发送给我了。我的首选是指向在线部署的WSDL,而不是作为附件发送的文件,我觉得我更有可能获得正确/完整的信息,而不必重复地说“我仍然缺少一个文件”。但我想知道:WSDL是否一定是web服务部署的一部分?我不知道在我的.NET web services.WSDL/XSD文件中是否经常从服务中的类生成。WCF和ASMX服务都是如此。