【问题标题】:How to fix "[OData Source [56]] Error: Cannot acquire a managed connection from the run-time connection manager." error in SSIS?如何修复“[OData Source [56]] 错误:无法从运行时连接管理器获取托管连接。” SSIS中的错误?
【发布时间】:2019-07-09 14:22:54
【问题描述】:

我在运行从 SharePoint 列表中提取数据的 SSIS 时遇到问题。 SSIS 包在 2 周前运行良好,但突然包失败并出现此错误:

[OData Source [56]] 错误:无法从运行时连接管理器获取托管连接。 [SSIS.Pipeline] 错误:OData 源验证失败并返回错误代码 0xC020801F。 [SSIS.Pipeline] 错误:一个或多个组件验证失败。 错误:任务验证过程中出现错误

试过了:

  1. 将包属性中的 64 位调试选项更改为 false
  2. http:// 而不是 https://

我希望 SSIS 包能够从 SharePoint 列表中提取数据而没有任何问题,但最近遇到了上述错误消息,该错误消息运行了一年多。

服务器详情:Windows server 2012 R2。

应用详情:Visual Studio 2010,.NET 框架 - 4.5


更新@2019-02-17

我们没有使用 Windows 身份验证,即使在以管理员身份运行 SSDT 后,SSIS Passage 也会失败。我们可以在 ODATA 源中预览 Sharepoint 列表数据,但在触发时包会失败并出现上述错误消息

【问题讨论】:

    标签: ssis connection odata etl sharepoint-list


    【解决方案1】:

    更新 2 - ODATA 连接属性

    在 ODATA 连接管理器中尝试设置以下属性,如图所示:


    更新 1 - TLS 问题

    在搜索时,我发现了以下相关文章:

    他们提到了以下解决方案:

    我们可以通过以下步骤解决这个问题:

    1. 在您的计算机上安装 Microsoft .NET 4.6 及更高版本 (https://technet.microsoft.com/en-us/library/security/2960358.aspx)。
    2. 通过注册表设置在您的计算机上实施 TLS 1.2。在提升的命令提示符下运行以下命令:
      • reg add HKLM\SOFTWARE\Microsoft.NETFramework\v4.0.30319 /v SchUseStrongCrypto /t REG_DWORD /d 1 /reg:64
      • reg add HKLM\SOFTWARE\Microsoft.NETFramework\v4.0.30319 /v SchUseStrongCrypto /t REG_DWORD /d 1 /reg:32

    同样基于以下文章:

    • .NET 4.6 及更高版本。您无需做任何额外的工作即可支持 TLS 1.2,默认情况下支持。
    • .NET 4.5 支持 TLS 1.2,但它不是默认协议。您需要选择加入才能使用它。以下代码将使 TLS 1.2 成为默认值,请确保在连接到安全资源之前执行它: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

    类似问题链接

    (这个问题中也提到了我提到的链接,也有很多有用的 cmets,这个问题非常相关,但不同的是它们没有连接到 Sharepoint 列表,它们连接到公共数据来源)


    原答案

    试图找出问题

    根据您提供的信息,该问题似乎不是由 SSIS 引起的,它与您正在工作的环境或您用于访问 Sharepoint 列表的凭据有关。

    在 ODATA 连接管理器中,there are many Authentication option you can use

    身份验证

    选择以下选项之一:

    • Windows 身份验证。对于匿名访问,请选择此选项。
    • 基本身份验证
    • 适用于 Dynamics AX Online 的 Microsoft Dynamics AX Online
    • 适用于 Dynamics CRM Online 的 Microsoft Dynamics CRM Online
    • 微软在线服务的微软在线服务

    如果您选择 Windows 身份验证以外的选项,请输入用户名和密码。

    如果您使用的是 Windows 身份验证,请尝试 run the Visual Studio as Administrator 并再次运行该程序包,如果您使用的是其他身份验证类型,请检查此帐户是否仍有访问权限。

    如果您在 SQL 作业中运行包,还要检查用户是否具有从 Sharepoint 列表中读取数据的必要权限。

    一些有用的链接

    此外,我将提供一些有用的链接,说明如何使用 ODATA 源连接到 Sharepoint 列表,它可能会给您一些见解:

    【讨论】:

    • 嗨哈迪,我们没有使用 Windows 身份验证,即使在以管理员身份运行 SSDT 后,SSIS 通道也失败了。我们可以在 ODATA 源中预览 Sharepoint 列表数据,但在触发时,包会因上述错误消息而失败。
    • @Vijay 你能提供完整的包日志吗,可能是一些有用的警告可能导致原因
    • 您好 Hadi,此问题在更改服务器中的代理设置后得到解决。非常感谢您的建议!!
    • 我发现我的问题是通过将属性框中的超时值增加到高于 600 的值来解决的。
    • @Hadi,感谢您的深入研究和回复。在过去的几天里,我一直在与与 Sharepoint 的 ODATA 连接作斗争,最后认为我解决了它只是为了发现这个问题。感谢您的彻底工作
    【解决方案2】:

    我们收到此错误,因为在服务器中启用了代理。启用代理后,SSIS 包在执行期间无法访问 Sharepoint 列表。在 Internet 选项中将连接更改为“自动检测设置”后,此功能运行良好。

    【讨论】:

    • 看起来哈迪花了很多时间试图解决这个问题并提出了很多建议,当最终用户找到一个意想不到的解决方案而不赞成其他答案时,我感到很沮丧,以表示感谢。
    【解决方案3】:

    此解决方案有所帮助,但该命令仍有问题。命令中缺少\(在Microsoft.NETFramework 之间)

    reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SchUseStrongCrypto /t REG_DWORD /d 1 /reg:64
    

    【讨论】:

      【解决方案4】:

      如果您使用代理,在 machine.config 中为 .NET Framework 设置它会有所帮助。

      以管理员身份打开记事本并打开以下文件:

      C:\Windows\Microsoft.NET\framework\v4.0.30319\config\machine.config

      C:\Windows\Microsoft.NET\framework64\v4.0.30319\config\machine.config

      搜索 如果未找到 ,则添加以下文本作为上面倒数第二行,并根据环境替换代理地址:

      <system.net>
           <defaultProxy>
                   <proxy autoDetect="false" bypassonlocal="true" proxyaddress="http://proxy_host:8080" />
           </defaultProxy>
      </system.net>
      

      【讨论】:

        猜你喜欢
        • 2018-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多