症状
尝试在启用了传输层安全性 (TLS) 版本 1.2 的服务器上安装 Microsoft SQL Server 2012 或 SQL Server 2014 时,可能会遇到以下问题:
如果尝试安装的SQL Server版本不包含用于启用 TLS 1.2 支持的修补程序 (有关添加 TLS 1.2 支持的版本的详细信息,请参阅3052404) ,你会收到以下错误消息:
注意
等待数据库引擎恢复句柄失败。 检查SQL Server错误日志中的潜在原因。
如果尝试安装的SQL Server版本包含用于启用 TLS 1.2 支持的修补程序,则会收到以下错误消息:
注意
已成功与服务器建立连接,但在登录前握手期间发生了错误。 (提供程序:命名管道提供程序,错误:0 - 管道的另一端没有进程。)
在这两种情况下,安装都失败。
原因
出现此问题的原因是,SQL Server安装程序使用 SqlClient .NET Framework 2.0 中的 ADO.NET。 默认情况下,.NET Framework 2.0 适用于 TLS 1.0。
解决方法
若要解决此问题,请安装.NET Framework的修补程序汇总,然后重启服务器。 使用下表根据运行的操作系统和SQL Server版本查找相应的修补程序:
| 操作系统版本 | 修复 |
|---|---|
| Windows 2012 R2 和 Windows 8.1 | Windows Server 2012 R2 和 Windows 8.1 中.NET Framework 2.0 SP2 的修补程序汇总3106993 |
| Windows Server 2012和Windows 8 | Windows Server 2012 和 Windows 8 上的 .NET Framework 2.0 SP2 的修补程序汇总3106992 |
| Windows Server 2008 R2 SP1 和 Windows 7 SP1 | Windows Server 2008 R2 SP1 和 Windows 7 SP1 中的 .NET Framework 2.0 SP2 的修补程序汇总3106991 |
解决方法
若要解决此问题,请按照下列步骤操作:
- 在服务器上启用 TLS 1.0。
- 重新启动服务器。
- 运行 SQL Server 2012 或 SQL Server 2014 安装程序,并将 SQL Server 版本更新为支持 TLS 1.2 的内部版本。 (有关添加 TLS 1.2 支持的更新的详细信息,请参阅 KB 3052404.)
- 禁用 TLS 1.0。
- 重新启动服务器。
注意 当你尝试安装不包含用于启用 TLS 1.2 支持的修补程序的 SQL Server 2012 或 SQL Server 2014 版本时,还必须使用此解决方法。
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
了解 Microsoft 用于描述软件更新的术语。