如何修复“[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中的错误?的主要内容,如果未能解决你的问题,请参考以下文章