症状
当您尝试在已启用传输层安全性(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 安装程序使用 .NET Framework 2.0 中 ADO.NET 的 SqlClient。 默认情况下,.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。
-
重新启动服务器。
注意 当你尝试安装 SQL Server 2012 的内部版本或 SQL Server 2014 (不包含修补程序以启用 TLS 1.2 支持)时,你还必须使用此解决方法。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。