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

Posted

技术标签:

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

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

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

试过了:

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

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

服务器详情:Windows server 2012 R2。

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


更新@2019-02-17

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

【问题讨论】:

【参考方案1】:

更新 2 - ODATA 连接属性

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


更新 1 - TLS 问题

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

TLS Issue with SSIS package while accessing OData Source like Dynamics AX Online

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

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

    在您的计算机上安装 Microsoft .NET 4.6 及更高版本 (https://technet.microsoft.com/en-us/library/security/2960358.aspx)。 通过注册表设置在您的计算机上实施 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

同样基于以下文章:

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

类似问题链接

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

OData Source Component in SSIS Not Connecting

原答案

试图找出问题

根据您提供的信息,该问题似乎不是由 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 列表,它可能会给您一些见解:

How to configure OData SSIS Connection for SharePoint Online Reading SharePoint Lists with Integration Services 2017 Using the SSIS OData Source Connector With SharePoint Online Authentication

【讨论】:

嗨哈迪,我们没有使用 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>

【讨论】:

以上是关于如何修复“[OData Source [56]] 错误:无法从运行时连接管理器获取托管连接。” SSIS中的错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复drv?

如何修复漏洞

如何修复WMI

PHP网站漏洞怎么修复 如何修补网站程序代码漏洞

如何修复这些漏洞? (npm audit fix 无法修复这些漏洞)

如何修复AppScan漏洞