KB3135769 - 修复:在启用了 TLS 1.2 的服务器上安装 SQL Server 2012 或 SQL Server 2014 时出错

应用对象
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

症状

尝试在启用了传输层安全性 (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

      

解决方法

若要解决此问题,请按照下列步骤操作:

  1. 在服务器上启用 TLS 1.0。
  2. 重新启动服务器。
  3. 运行 SQL Server 2012 或 SQL Server 2014 安装程序,并将 SQL Server 版本更新为支持 TLS 1.2 的内部版本。 (有关添加 TLS 1.2 支持的更新的详细信息,请参阅 KB 3052404.)
  4. 禁用 TLS 1.0。
  5. 重新启动服务器。

注意 当你尝试安装不包含用于启用 TLS 1.2 支持的修补程序的 SQL Server 2012 或 SQL Server 2014 版本时,还必须使用此解决方法。

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

参考资料

了解 Microsoft 用于描述软件更新的术语