首页 > 解决方案 > 如何修复“[OData Source [56]] 错误:无法从运行时连接管理器获取托管连接。” SSIS中的错误?

问题描述

我在运行从 SharePoint 列表中提取数据的 SSIS 时遇到问题。SSIS 包在 2 周前运行良好,突然包因以下错误而失败:

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

试过:

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

我希望 SSIS 包能够从 SharePoint 列表中提取数据而不会出现任何问题,但最近遇到了上述错误消息,该消息可以正常工作一年多。

服务器详细信息:Windows 服务器 2012 R2。

应用程序详细信息:Visual Studio 2010、.NET 框架 - 4.5


更新@2019-02-17

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

标签: ssisconnectionodataetlsharepoint-list

解决方案


更新 2 - ODATA 连接属性

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

在此处输入图像描述


更新 1 - TLS 问题

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

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

我们可以使用以下步骤解决此问题:

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

类似问题链接

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


原始答案

试图找出问题所在

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

在 ODATA 连接管理器中,您可以使用许多身份验证选项

验证

选择以下选项之一:

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

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

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

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

一些有用的链接

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


推荐阅读