SSIS执行Azure Blob上传任务报错Could not create SSL/TLS secure channel如何解决
针对SSIS Azure Blob Upload任务40分钟报错"Could not create SSL/TLS secure channel"的解决方案
错误信息:Could not create SSL/TLS secure channel
1. 修复TLS版本不兼容问题
Azure Blob存储当前已强制要求使用TLS 1.2及以上版本,SSIS运行时默认的TLS版本不符合要求是该报错的最常见原因:
- 方案A(修改SSIS包,无需改服务器配置):在SSIS包最靠前的位置添加一个脚本任务,加入以下代码:
using System.Net; public void Main() { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13; Dts.TaskResult = (int)ScriptResults.Success; }
- 方案B(修改服务器配置,无需改包):在运行SSIS的服务器上以管理员身份执行以下PowerShell命令,执行后重启服务器生效:
# 为64位和32位.NET Framework启用强加密(默认使用TLS1.2+) Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value 1 -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value 1 -Type DWord
2. 修复长连接SSL会话过期问题
40分钟固定时间报错大概率是SSL会话超时导致连接中断,重连时握手失败,按以下步骤调整:
- 开启Azure Blob Upload任务的分块上传功能,将单块大小设置为50~100MB,避免单个连接持续时间过长
- 调大任务的超时时间阈值到超过你预估的文件总传输时长,默认阈值通常为40分钟
- 联系网络团队放行SSIS服务器到Azure Blob存储域名的长连接,关闭企业代理/防火墙上针对该域名的30~40分钟TCP会话自动断开规则
3. 验证依赖组件版本
- 确认你安装的「Azure SSIS Feature Pack」版本和SQL Server版本匹配,SQL Server 2017以下版本需要手动升级Feature Pack到最新版,旧版本内置的Azure SDK不支持TLS1.2
- 确认SSIS运行服务器的.NET Framework版本不低于4.7.2,低于该版本的.NET运行时默认不会优先启用TLS1.2
快速排查验证
先尝试传输一个小于10MB的小文件,如果小文件可以正常上传,即可排除账号权限、基础网络连通性问题,直接按上述前两类方案修复即可。
内容的提问来源于stack exchange,提问作者Raj
相关产品推荐
相关产品推荐

