Web 应用程序在版本 1709 上返回 HTTP 错误 503 和 WAS Windows 10 5189

本文帮助您重新分析 HTTP 503 错误和 5189 事件,在升级到 Windows 10 或 Windows Server 2016 上的版本 1709 (Fall Creators Update) 后,Web 应用程序无法启动,并返回 HTTP 503 错误和 Windows 激活服务 (WAS) 事件 5189。

原始产品版本:  Windows 10 企业版、Windows 10 专业版、Windows Server 2016 Standard、Windows Server 2016 Datacenter
原始 KB 编号:   4050891

症状

请考虑以下情况:

  • 您拥有一台运行 IIS Windows 10或Windows Server 2016 IIS Internet Information Services (的计算机) 。
  • 升级到版本 1709 Windows 10 Fall Creators Update (或) 1709 Windows Server 2016版本 1709。

升级后,一些 Web 应用程序不会启动,并返回以下 HTTP 503 错误消息:

服务不可用
HTTP 错误 503。 服务不可用。

此外,WAS 事件 5189 记录在事件日志中:

Windows进程激活服务无法生成 <DefaultAppPool> 应用程序池 配置文件"应用程序池"。 错误类型为"5"。 若要解决此问题,请确保该applicationhost.config正确,然后重新提交上次进行的配置更改。 数据字段包含错误号。

解决方案

若要解决此问题,请手动删除由 update 创建的Windows链接。 为此,请按照下列步骤操作。

备注

可以删除与常规文件相同的符号链接。

  1. 使用"以管理员方式运行"选项打开 命令提示符 窗口。

  2. 运行以下命令:

    net stop WAS /y
    rmdir /s /q C:\inetpub\temp\appPools
    net start W3SVC
    

原因

WAS 在典型操作期间为文件夹中的每个 IIS 应用程序池 C:\inetpub\temp\appPools 创建一个临时配置文件。

在初始升级阶段,Windows Update 扫描 (Windows 文件夹) 外部的现有文件夹和文件,并记录升级后要还原的路径。 但是,由于配置文件是临时的,因此在 WAS 停止时将删除它们。

在更新Windows阶段,这些以前扫描的文件和文件夹将复制到临时升级位置。 升级Windows后,Windows Update 会创建一个符号链接,该链接指向在尝试将这些文件和文件夹还原到其原始位置之前复制到临时升级位置的每个文件夹。

但是,由于这些临时配置文件不再存在,Windows Update 不会删除符号链接。

当 WAS 尝试作为 IIS 工作进程启动时,它不会创建一个临时文件夹来写入配置,因为符号链接。 因此,Http.Sys返回 HTTP 503 错误。