【问题标题】:SSIS Not Detecting Input Service or Method from WSDL FileSSIS 未从 WSDL 文件中检测输入服务或方法
【发布时间】:2014-07-14 17:15:49
【问题描述】:

我有一个本地保存的 WSDL 文件(首先从开发人员工具包中下载,它指示将其保存在本地,而不是从公共 URL 下载),我正在尝试在 SSIS 的 Web 服务任务中使用它。我指向 Web 服务任务编辑器(常规选项卡)中的本地文件。 HTTP 连接指向一个已在 HTTP 连接管理器中成功测试连接的 URL。

但是,用于选择服务和方法的输入选项卡下拉菜单是空白的。我没有收到关于 WSDL 文件本身的任何错误。它看起来格式正确且有效。我不确定为什么 SSIS 没有从 WSDL 文档中检测到服务和方法。

我尝试在本地从http://graphical.weather.gov 保存一个不同的 WSDL 文档,它在不同的 Web 服务任务中工作。我猜 WSDL 的结构有问题。它是通过帐户凭据访问的,因此很遗憾,我认为我不能将其粘贴到此处。不过,这对我来说看起来还不错。

有什么建议可以尝试吗?谢谢。

更新:我之前没有按“下载 WSDL”按钮,认为这仅适用于来自 Web URL 的 WSDL 文档。单击它时,我收到一条消息,表明 WSDL 已成功下载。然后,在单击“输入”选项卡时,我收到这条模糊的错误消息:

无法读取 Web 服务描述语言 (WSDL) 文件。输入 WSDL 文件无效。读取文件时出现以下错误。 XML 文档中存在错误 (1, 2)..

我尝试在 XML 复制编辑器中进行验证,它给了我这个:

第 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)至少允许 BlueSSIS 插件查看 Web 服务方法,但尝试选择它会导致 BlueSSIS 插件崩溃。内置的网络服务工具仍然看不到任何方法。

【问题讨论】:

    标签: web-services ssis wsdl


    【解决方案1】:

    您是否正确设置了HTTP Connection?它必须类似于“http://server.asmx?WSDL”。如果没有,请执行此操作并再次下载 wsdl 并覆盖,然后它应该可以工作。

    【讨论】:

      【解决方案2】:

      似乎缺少某些配置。你可以看看这篇SSIS Web Service Task Step by Step 文章。如果 Web 服务正在使用证书,那么您需要将其安装到您的机器上。

      【讨论】:

      • 我查看了那篇文章并安装了证书,但我仍然没有在 Web 服务任务编辑器中看到任何可用的服务。
      • 您发送的链接无效!!
      【解决方案3】:

      我无法使用任何 GUI 解决方案,因此我最终编写了一个自定义脚本任务来解决它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-07
        相关资源
        最近更新 更多