我一直试图向提供者提供更多的信息,说明我在尝试使用他的WS时所遇到的错误。
他们让我使用wsdl.exe执行以下命令:
wsdl.exe /l:CS /protocol:SOAP /verbose /sharetypes https:example.com/?wsdl
我做了,并得到:错误:有一个错误处理'https://example.oom?wsdl‘。-下载“https://example.com?wsdl”时出错。-请求被中止:无法创建SSL/TLS安全通道。
问题是,我有一个证书来导航那个"https://example.com?wsdl“,并且我认为它已经安装好了。当我试图转到IE中的URL时,我只需要从列表中选择证书并给予它一定的权限。然后显示wsdl。我要求WS提供程序告诉我如何告诉命令:“使用ssl。使用此证书”。他们让我去问我的网络团队,但我没有这样的事情,所以我问了google,我发现: 1)启用SSL/TLS (如果这意味着转到: IE > Internet选项> Advanced > SSL/TLS已启用)和2)检查证书是否已安装和可用。我想是的。
有人能告诉我我能做什么吗?如何安装证书,但命令无法到达?
发布于 2012-06-21 16:21:57
您是说您需要提供客户端证书才能导航到该网页?如果是这样的话,我不确定您是否可以直接使用wsdl.exe工具连接到它。
但你不需要。在IE中加载WSDL并将其保存为XML,然后将wsdl.exe指向文件的本地副本。输出中唯一的区别将是嵌入在代理类中的默认端点地址。无论如何,您应该在运行时设置这个值,但是您可以随时编辑自动生成的C#代码并修复它。实际的服务和数据契约以及实现代码将完全相同。
请注意:如果这个WSDL是由WCF生成的,那么您还有一些额外的工作要做。WCF生成一个联邦WSDL定义:通常有六个或更多单独的XSD文件组成整个WSDL定义。通常,连接相关信息在一个文件中找到,而类型信息则使用如下所示的标记从其他地方提取:
<wsdl:types>
<xsd:schema targetNamespace="foo">
<xsd:import schemaLocation="https://localhost/Foo.svc?xsd=xsd0" namespace="foo"/>
<xsd:import schemaLocation="https://localhost/Foo.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
<xsd:import schemaLocation="https://localhost/Foo.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/Foo.Model"/>
<xsd:import schemaLocation="https://localhost/Foo.svc?xsd=xsd3" namespace="http://schemas.datacontract.org/2004/07/System.Collections.ObjectModel"/>
</xsd:schema>
</wsdl:types>如果是这样的话,您需要做两件事才能获得所需的WSDL:
<?include>指令,要么是在其他XML文件中找到的<wsdl:import>标记,这些标记会引出第二个XML。您需要检查每个新文件,因为通常有二级和三级导入。将所有内容放在一个文件夹中。一旦完成,wsdl.exe就会运行得很好。(在.NET 4.5中,支持动态地将WSDL文件扁平化,但在此之前必须手动执行。)
发布于 2012-06-21 16:21:28
将wsdl下载到浏览器中,保存到文件中,然后在本地文件上使用wsdl.exe。
https://stackoverflow.com/questions/11142184
复制相似问题