【问题标题】:SSIS Package unable to connect DB when disable TLS 1.0禁用 TLS 1.0 时 SSIS 包无法连接数据库
【发布时间】:2020-12-01 10:26:10
【问题描述】:

我正在使用 2008 年开发的 SSIS 包,从文本文件中读取数据并加载到数据库中。 根据微软政策,TLS 1.0 不再支持。

因此,我们已禁用 TLS 1.0 并运行 SSIS 包。报错如下:

错误:2020-08-10 22:58:07.45 代码:0xC0202009 来源:filenameofpackage 连接管理器“OLEDBConnection”描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。 OLE DB 记录可用。来源:“Microsoft OLE DB Provider for SQL Server”Hresult:0x80004005 描述:“[DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL 安全错误。”。结束错误

如何解决这个问题?

【问题讨论】:

  • 你可以升级到新版本的 SSIS 然后重新部署它吗?
  • 运行包的 SQL Server 版本是什么?它安装在什么操作系统上?

标签: sql-server ssl ssis tls1.2 oledbconnection


【解决方案1】:

SSIS 2008 基于 .net framework 3.5,这意味着不支持开箱即用的 Tls 1.2,除非您安装了一些系统更新 see this

假设您的系统有正确的更新,那么您可以在脚本任务中尝试以下行(必须是 SSIS 包中的第一个任务)以在 .net framework 3.5 代码中启用 Tls1.2

 // Enable TLS 1.1 and 1.2
System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)768                                               | (System.Net.SecurityProtocolType)3072;

// OR -- Enable JUST TLS 1.2
//System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;
  1. 在控制流中拖动脚本任务。确保所有其他任务都在此任务之后
  2. 编辑脚本任务(选择 C# 作为您的语言并在 main() 方法中编写以上行

更多信息请查看this link。博客文章适用于 SSIS 2012,但同样适用于 2008 年

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多