SSRS通过SMTP发送报表报错远程方关闭传输流解决方案咨询
你遇到的Authentication failed because the remote party has closed the transport stream报错属于典型的TLS协议协商失败问题,按以下步骤配置SSRS启用TLS1.2即可解决:
操作前建议先备份注册表、SSRS配置文件,避免配置错误导致服务异常。
步骤1:启用操作系统层面的TLS 1.2支持
打开注册表编辑器,依次修改以下项:
- 定位到路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
新建两个DWORD值:DisabledByDefault赋值为0Enabled赋值为1
- 定位到路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
同样新建两个DWORD值:DisabledByDefault赋值为0Enabled赋值为1
如需彻底禁用不安全的TLS1.0、TLS1.1协议,可在对应协议的注册表路径下,将DisabledByDefault设为1、Enabled设为0。
步骤2:修改.NET Framework默认TLS配置
SSRS依赖.NET运行时,需要配置.NET使用系统默认TLS版本:
- 定位到路径
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
新建DWORD值SystemDefaultTlsVersions赋值为1 - 64位操作系统需额外修改路径
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
同样新建DWORD值SystemDefaultTlsVersions赋值为1
步骤3:更新SSRS配置文件
找到SSRS安装目录下的RSReportServer.config配置文件,默认路径为 C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config,检查SMTP配置段,删除强制指定旧版TLS协议的配置项后保存。
步骤4:重启服务生效
所有配置修改完成后,依次重启SSRS服务、SQL Server服务,测试报表邮件发送功能验证是否修复。
2021年曾出现过Exchange Online服务端TLS配置故障,仅影响使用TLS1.0的用户连接:
事件标题:部分使用TLS 1.0的用户间歇性无法通过多种连接方式访问邮箱
用户影响:使用TLS 1.0的用户可能间歇性无法通过IMAP、SMTP、POP3连接Exchange Online
根本原因:CAFE TLS配置问题导致部分用户无法通过上述协议连接Exchange Online服务
微软已于2021年10月29日完成该问题的全量修复推送,若故障发生在该时间点之后,可直接排除该服务端问题,优先排查本地SSRS的TLS配置。
内容的提问来源于stack exchange,提问作者jerry_k

