症状
尝试在启用了传输层安全性 (TLS) 版本 1.2 的服务器上安装 Microsoft SQL Server 2012 或 SQL Server 2014 时,可能会遇到以下问题:
如果尝试安装的 SQL Server 版本不包含启用 TLS 1.2 支持的修补程序 (有关添加 TLS 1.2 支持的内部版本的详细信息,请参阅 KB 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 用于描述软件更新的术语。