Web services SSI未从WSDL文件检测输入服务或方法
我有一个保存在本地的WSDL文件(首先从开发人员工具包下载,该工具包指示将其保存在本地,而不是从公共URL下载),我正试图在SSIS中的Web服务任务中使用它。我指向Web服务任务编辑器(General选项卡)中的本地文件。HTTP连接指向在HTTP连接管理器中具有成功测试连接的URL 但是,用于选择服务和方法的“输入”选项卡下拉菜单为空。我没有得到任何关于WSDL文件本身的错误。它看起来结构合理、有效。我不确定SSIS为什么没有从WSDL文档中检测服务和方法 我尝试从本地保存不同的WSDL文档,这在不同的Web服务任务中起作用。我猜WSDL的结构有问题。不幸的是,它是通过帐户凭据访问的,所以我不认为我可以将它粘贴到这里。不过,我还是觉得不错 有什么建议吗?谢谢 更新:我以前没有按“下载WSDL”按钮,认为这只适用于来自web URL的WSDL文档。单击它时,我会收到一条消息,说明WSDL已成功下载。然后,单击“输入”选项卡时,我会收到一条模糊的错误消息: 无法读取Web服务描述语言(WSDL)文件。输入WSDL文件无效。读取文件时发生以下错误。XML文档(1,2)中存在错误 我尝试在XML Copy Editor中进行验证,它给出了以下结果: 第4行第468列出错:未找到元素“wsdl:definitions”的声明 同样,我觉得这很好,但我正在粘贴下面的WSDL代码,并对所有者的信息进行了编辑:Web services SSI未从WSDL文件检测输入服务或方法,web-services,ssis,wsdl,Web Services,Ssis,Wsdl,我有一个保存在本地的WSDL文件(首先从开发人员工具包下载,该工具包指示将其保存在本地,而不是从公共URL下载),我正试图在SSIS中的Web服务任务中使用它。我指向Web服务任务编辑器(General选项卡)中的本地文件。HTTP连接指向在HTTP连接管理器中具有成功测试连接的URL 但是,用于选择服务和方法的“输入”选项卡下拉菜单为空。我没有得到任何关于WSDL文件本身的错误。它看起来结构合理、有效。我不确定SSIS为什么没有从WSDL文档中检测服务和方法 我尝试从本地保存不同的WSDL文档
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="Service" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:error="http://www.[redacted].com/error" xmlns:co="http://www.[redacted].com/co" xmlns:srv="http://www.[redacted].com/srv" xmlns:tns="http://www.[redacted].com/tns" targetNamespace="http://www.[redacted].com/tns">
<wsdl:types>
<xsd:schema>
<xsd:import namespace="http://www.[redacted].com/XMLSchema/1" schemaLocation="1.xsd"/>
<xsd:import namespace="http://www.[redacted].com/XMLSchema/2" schemaLocation="2.xsd"/>
<xsd:import namespace="http://www.[redacted].com/XMLSchema/3" schemaLocation="3.xsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="ServiceRequestMessage">
<wsdl:part name="Body" element="srv:ServiceRequest"/>
<wsdl:part name="security" element="co:security"/>
</wsdl:message>
<wsdl:message name="ServiceResponseMessage">
<wsdl:part name="Body" element="srv:ServiceResponse"/>
</wsdl:message>
<wsdl:message name="ServiceErrorMessage">
<wsdl:part name="ServiceError" element="error:Errors"/>
</wsdl:message>
<wsdl:portType name="ServicePortType">
<wsdl:operation name="ProcessService">
<wsdl:input name="ServiceRequest" message="tns:ServiceRequestMessage"/>
<wsdl:output name="ServiceResponse" message="tns:ServiceResponseMessage"/>
<wsdl:fault name="ServiceError" message="tns:ServiceErrorMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ServiceBinding" type="tns:ServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ProcessService">
<soap:operation soapAction="http://soap.[redacted].com/binding" style="document"/>
<wsdl:input name="ServiceRequest">
<soap:body parts="Body" use="literal"/>
<soap:header message="tns:ServiceRequestMessage" part="security" use="literal">
<soap:headerfault message="tns:ServiceErrorMessage" part="ServiceError" use="literal"/>
</soap:header>
</wsdl:input>
<wsdl:output name="ServiceResponse">
<soap:body parts="Body" use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceError">
<soap:fault name="ServiceError" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ServiceService">
<wsdl:port name="ServicePort" binding="tns:ServiceBinding">
<soap:address location="https://ws.[redacted].com/service"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
更新2:我想我已经将问题追溯到了一个事实,即WSDL引用的一个XSD文件使用了一个组标记。删除任何组标记(并将其子元素移动到引用它们的complexType)至少允许Bluesis插件查看web服务方法,但尝试选择它会导致Bluesis插件崩溃。内置的web服务工具仍然看不到任何方法。似乎缺少一些配置。你可以看看这篇文章。如果web服务正在使用证书,则需要将其安装到计算机上 我无法使用任何GUI解决方案,因此我最终编写了一个自定义脚本任务来解决这个问题。您是否正确设置了
HTTP连接?它必须是类似于“”的东西。如果没有,请执行此操作并再次下载带有覆盖的wsdl
,然后它应该可以工作。我查看了那篇文章并安装了证书,但在Web服务任务编辑器中仍然没有看到任何可用的服务。您发送的链接不是vallid!!