You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSIS访问Azure Blob Storage下载文件报算法不共通错误如何解决

问题根因

该报错为TLS加密协议版本不兼容导致:近期Azure存储服务默认禁用了TLS 1.0、TLS 1.1等低版本协议,要求客户端必须使用TLS 1.2及以上版本建立连接,你当前SSIS运行环境默认使用低版本TLS发起请求,因此触发算法不共通的报错。

排查步骤

  • 检查SSIS运行服务器的.NET Framework版本,以及系统默认启用的TLS协议版本
  • 核对当前代码引用的Azure Storage SDK版本,低于9.0的版本默认不会优先使用TLS 1.2
  • 登录Azure门户查看对应存储账户的「配置」页,确认「最低TLS版本」设置是否为1.2及以上

解决方案

方案1:代码层强制指定TLS版本(最快生效)

在存储连接初始化代码(第115行)之前添加以下代码,强制通信使用TLS 1.2:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

如果运行环境支持TLS 1.3,可以扩展配置兼容更高版本:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls13;

方案2:系统级配置默认TLS版本(适合多SSIS包部署场景)

不需要修改代码,直接修改SSIS运行服务器的注册表配置:

  1. 打开注册表编辑器,定位到路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
  2. 新建2个DWORD类型的注册表项:
    • SchUseStrongCrypto,值设置为1
    • SystemDefaultTlsVersions,值设置为1
  3. 若为64位操作系统,再定位到路径 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319,重复添加上述2个注册表项
  4. 重启服务器后配置生效

方案3:升级Azure存储SDK版本

将项目引用的Microsoft.Azure.Storage.Blob包升级到10.0.0及以上版本,新版本SDK默认优先使用TLS 1.2及以上协议,无需额外手动配置。

临时应急方案(不建议长期使用)

如需紧急恢复业务,可以暂时将Azure存储账户的最低TLS版本调整为TLS 1.0,确认业务恢复后再按上述正式方案修复,避免安全风险。


内容的提问来源于stack exchange,提问作者Akcil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:36:03