Web services SSI未从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文档

我有一个保存在本地的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代码,并对所有者的信息进行了编辑:

<?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!!