排查 Web 应用程序代理问题

本文与本地版本的 Web 应用程序代理相关。 若要通过云启用对本地应用程序的安全访问,请参阅Microsoft Entra 应用程序代理内容

适用于:Windows Server 2022、Windows Server 2019、Windows Server 2016

本部分提供 Web 应用程序代理的故障排除过程,包括事件说明和解决方案。 有三个位置显示错误:

  • 在 Web 应用程序代理管理员控制台中

    可在 Windows 事件查看器中查看管理员控制台中列出的每个事件 ID,并在下方找到相应的说明和解决方案。

    打开事件查看器,在“应用程序和服务日志>”“Microsoft>Windows> Web 应用程序代理”下查找与Web 应用程序代理>相关的事件管理员。

    事件查看器的屏幕截图显示了与 Web 应用程序代理相关的事件。

    如果需要,可通过打开分析和调试日志以及打开“Web 应用程序代理会话日志”来获取详细日志,这些日志位于 Windows 事件查看器 \Microsoft\Windows\Web 应用程序代理\管理员 下。

  • 在 PowerShell 中出现错误

    在配置过程中遇到的问题的事件显示在 PowerShell 中。

    使用标准 PowerShell 错误提示向 PowerShell 用户显示所有错误。 所有 PowerShell cmdlet 都记录为事件。 在 PowerShell 中发生的所有事件都列在 Windows 事件查看器中,ID 为 12016,并在 PowerShell 部分中在下面定义。

  • 在最佳做法分析器中

    Web 应用程序代理的最佳做法分析器中介绍了这些事件。

PowerShell 消息

事件或症状 可能的原因 解决方案
信任证书 (“ADFS ProxyTrust - <WAP 计算机名称>”) 无效 这可能是由以下任一原因造成的:

- 应用程序代理计算机关闭时间过长。
- Web 应用程序代理与 AD FS 之间的连接
- 证书基础结构问题
- AD FS 计算机上的更改,或者 Web 应用程序代理 与 AD FS 之间的续订过程未按计划每 8 小时运行一次,因此需要续订信任
- Web 应用程序代理计算机和 AD FS 的时钟不同步。

确保时钟已同步。 Install-WebApplicationProxy运行 cmdlet。
在 AD FS 中找不到配置数据 这可能是因为尚未完全安装 Web 应用程序代理,或者由于 AD FS 数据库中的更改或数据库损坏。 Install-WebApplicationProxy运行 cmdlet
Web 应用程序代理尝试从 AD FS 读取配置时出错。 这可能表示无法访问 AD FS,或者 AD FS 在尝试从 AD FS 数据库读取配置时遇到了内部问题。 验证 AD FS 是否可访问且正常工作。
存储在 AD FS 中的配置数据已损坏,或者 Web 应用程序代理无法对其进行分析。

OR

Web 应用程序代理无法从 AD FS 检索信赖方列表。

如果在 AD FS 中修改了配置数据,则可能会出现这种情况。 重启 Web 应用程序代理服务。 如果问题仍然存在,请 Install-WebApplicationProxy 运行 cmdlet。

管理员控制台事件

以下管理员控制台事件指示身份验证错误、令牌无效或 Cookie 过期。

事件或症状 可能的原因 解决方案
11005

Web 应用程序代理无法使用配置中的机密创建 Cookie 加密密钥。

PowerShell cmdlet 更改了全局配置 AccessCookiesEncryptionKey 参数: Set-WebApplicationProxyConfiguration -RegenerateAccessCookiesEncryptionKey 不需要执行任何操作。 已删除有问题的 Cookie,并将用户重定向到 STS 进行身份验证。
12000

Web 应用程序代理在至少 60 分钟内无法检查配置更改

Web 应用程序代理无法使用 cmdlet Get-WebApplicationProxyConfiguration/Application访问 Web 应用程序代理配置。 这是由于缺少与 AD FS 的连接,或者需要与 AD FS 续订信任。 检查与 AD FS 的连接。 可以使用链接 https://<FQDN_AD_FS_Proxy>/FederationMetadata/2007-06/FederationMetadata.xml执行此操作。 确保在 AD FS 和 Web 应用程序代理之间建立信任。 如果这些解决方案不起作用,请 Install-WebApplicationProxy 运行 cmdlet。
12003

Web 应用程序代理无法分析访问 Cookie。

这可能表示 Web 应用程序代理和 AD FS 未连接,或者它们未收到相同的配置。 检查与 AD FS 的连接。 可以使用链接 https://<FQDN_AD_FS_Proxy>/FederationMetadata/2007-06/FederationMetadata.xml执行此操作。 确保在 AD FS 和 Web 应用程序代理之间建立信任。 如果这些解决方案不起作用,请 Install-WebApplicationProxy 运行 cmdlet。
12004

Web 应用程序代理收到了具有非验证访问 Cookie 的请求。

此事件可能表示 Web 应用程序代理和 AD FS 未连接,或者它们未收到相同的配置。

如果运行 AccessCookiesEncryptionKey 的参数已由 Set-WebApplicationProxyConfiguration -RegenerateAccessCookiesEncryptionKey PowerShell cmdlet 更改,则此事件正常,无需执行任何解析步骤。

检查与 AD FS 的连接。 可以使用链接 https://<FQDN_AD_FS_Proxy>/FederationMetadata/2007-06/FederationMetadata.xml执行此操作。 确保在 AD FS 和 Web 应用程序代理之间建立信任。 如果这些解决方案不起作用,请 Install-WebApplicationProxy 运行 cmdlet。
12008

Web 应用程序代理超出了后端服务器允许的最大 Kerberos 身份验证尝试次数。

此事件可能指示 Web 应用程序代理 与后端应用程序服务器之间的配置不正确,或者这两台计算机上的时间和日期配置出现问题。 后端服务器拒绝了 Web 应用程序代理 创建的 Kerberos 票证。 验证 Web 应用程序代理的配置和后端应用程序服务器的配置是否正确。

确保 Web 应用程序代理和后端应用程序服务器上的时间和日期配置已同步。

12011

Web 应用程序代理收到了具有无效访问 Cookie 签名的请求。

此事件可能表示 Web 应用程序代理和 AD FS 未连接,或者它们未收到相同的配置。 如果运行 AccessCookiesEncryptionKey 的参数已由 Set-WebApplicationProxyConfiguration -RegenerateAccessCookiesEncryptionKey PowerShell cmdlet 更改,则此事件正常,无需执行任何解析步骤。 检查与 AD FS 的连接。 可以使用链接 https://<FQDN_AD_FS_Proxy>/FederationMetadata/2007-06/FederationMetadata.xml执行此操作。 确保在 AD FS 和 Web 应用程序代理之间建立信任。 如果这些解决方案不起作用,请 Install-WebApplicationProxy 运行 cmdlet。
12027

代理在处理请求时遇到意外错误。 提供的名称不是格式正确的帐户名称。

此事件可能指示 Web 应用程序代理与域控制器服务器之间的配置不正确,或者这两台计算机上的时间和日期配置存在问题。 域控制器拒绝了 Web 应用程序代理 创建的 Kerberos 票证。 验证是否正确配置了 Web 应用程序代理和后端应用程序服务器的配置,尤其是 SPN 配置。 确保 Web 应用程序代理已加入到与域控制器相同的域,以确保域控制器与 Web 应用程序代理建立信任。 确保 Web 应用程序代理和域控制器上的时间和日期配置已同步。
13012

Web 应用程序代理收到了非验证边缘令牌签名

请确保使用 Web 应用程序代理更新的 Web 应用程序代理在 Windows Server 2012 R2 上自动更新后无法检测到更新的证书
13013

Web 应用程序代理收到了包含过期边缘令牌的请求。

Web 应用程序代理和 AD FS 没有同步时钟。 同步 Web 应用程序代理 和 AD FS 之间的时钟。
13014

Web 应用程序代理收到了具有非验证边缘令牌的请求。 令牌无效,因为它无法分析。

这可能表示 AD FS 配置存在问题。 检查 AD FS 配置,并在必要时还原默认配置。
13015

Web 应用程序代理收到了具有过期访问 Cookie 的请求。

这可能指示未同步的时钟。 如果使用的是 Web 应用程序代理计算机群集,请确保计算机的时间和日期已同步。
13016

Web 应用程序代理无法代表用户检索 Kerberos 票证,因为边缘令牌或访问 Cookie 中没有 UPN。

STS 配置存在问题。 修复 STS 中的 UPN 声明配置。
13019

由于以下常规 API 错误,Web 应用程序代理无法代表用户检索 Kerberos 票证

此事件可能指示 Web 应用程序代理与域控制器服务器之间的配置不正确,或者这两台计算机上的时间和日期配置存在问题。 域控制器拒绝了 Web 应用程序代理 创建的 Kerberos 票证。 验证是否正确配置了 Web 应用程序代理和后端应用程序服务器的配置,尤其是 SPN 配置。 确保 Web 应用程序代理已加入到与域控制器相同的域,以确保域控制器与 Web 应用程序代理建立信任。 确保 Web 应用程序代理和域控制器上的时间和日期配置已同步。
13020

Web 应用程序代理无法代表用户检索 Kerberos 票证,因为未定义后端服务器 SPN。

此事件可能指示 Web 应用程序代理与域控制器服务器之间的配置不正确,或者这两台计算机上的时间和日期配置存在问题。 域控制器拒绝了 Web 应用程序代理 创建的 Kerberos 票证。 验证是否正确配置了 Web 应用程序代理和后端应用程序服务器的配置,尤其是 SPN 配置。 确保 Web 应用程序代理已加入到与域控制器相同的域,以确保域控制器与 Web 应用程序代理建立信任。 确保 Web 应用程序代理和域控制器上的时间和日期配置已同步。
13022

Web 应用程序代理无法对用户进行身份验证,因为后端服务器响应 Kerberos 身份验证尝试并显示 HTTP 401 错误。

此事件可能指示 Web 应用程序代理 与后端应用程序服务器之间的配置不正确,或者这两台计算机上的时间和日期配置出现问题。 后端服务器拒绝了 Web 应用程序代理 创建的 Kerberos 票证。 验证 Web 应用程序代理的配置和后端应用程序服务器的配置是否正确。 确保 Web 应用程序代理和后端应用程序服务器上的时间和日期配置已同步。
13025

客户端未向 Web 应用程序代理提供 SSL 证书。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。 确保为 Web 应用程序代理配置的指纹是正确的指纹。
13026

客户端向 Web 应用程序代理提供 SSL 证书,但证书无效:证书与指纹不匹配。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。 确保为 Web 应用程序代理配置的指纹是正确的指纹。
13028

Web 应用程序代理收到一个请求,其中包含尚无效的边缘令牌。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。
13030

客户端向 Web 应用程序代理提供 SSL 证书,但信任提供程序不信任颁发客户端证书的证书颁发机构。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。 确保为 Web 应用程序代理配置的指纹是正确的指纹。
13031

客户端向 Web 应用程序代理提供 SSL 证书,但证书链在信任提供程序不信任的根证书中终止。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。 确保为 Web 应用程序代理配置的指纹是正确的指纹。
13032

客户端向 Web 应用程序代理提供 SSL 证书,但证书对请求的用法无效。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。 确保为 Web 应用程序代理配置的指纹是正确的指纹。
13033

客户端向 Web 应用程序代理提供 SSL 证书,但根据当前系统时钟或已签名文件中的时间戳进行验证时,证书未在其有效期内。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。 确保为 Web 应用程序代理配置的指纹是正确的指纹。
13034

客户端向 Web 应用程序代理提供 SSL 证书,但证书无效。

此事件可能表示时间和日期配置存在问题。 请确保证书基础结构有效,并且 Web 应用程序代理和 AD FS 的时间和日期已同步。 确保为 Web 应用程序代理配置的指纹是正确的指纹。

以下管理员控制台事件指示与配置有关的问题,例如预配、不成功的请求、无法访问的后端服务器和缓冲区溢出。

事件或症状 可能的原因 解决方案
12019

Web 应用程序代理无法为以下 URL 创建侦听器。

该事件的一个可能原因是另一个服务正在侦听同一 URL。 管理员必须确保没有人侦听或绑定到相同的 URL。 若要检查此项,请运行命令:netsh http show urlacl。 如果此 URL 由在 Web 应用程序代理 计算机上运行的另一个组件使用,请将其删除,或使用其他 URL 通过 Web 应用程序代理发布应用程序。
12020

Web 应用程序代理无法为以下 URL 创建预留。

该事件的一个可能原因是另一个服务在同一 URL 上具有预留。 管理员必须确保没有人绑定到相同的 URL。 若要检查此项,请运行命令:netsh http show urlacl。 如果此 URL 由在 Web 应用程序代理 计算机上运行的另一个组件使用,请将其删除,或使用其他 URL 通过 Web 应用程序代理发布应用程序。
12021

Web 应用程序代理无法绑定 SSL 服务器证书。 已应用所有其他配置设置。

无法创建和设置 SSL 证书数据的配置记录。 确保为 Web 应用程序代理应用程序配置的证书指纹安装在本地计算机存储中具有私钥的所有 Web 应用程序代理计算机上。
13001

后端服务器提供给 Web 应用程序代理的 SSL 服务器证书无效;证书不受信任。

在服务器发送的安全套接字层 (SSL) 证书中发现了一个或多个错误。 这可能表示后端服务器提供的 SSL 无效,或者 Web 应用程序代理与后端服务器之间没有信任。 验证后端服务器 SSL 证书。 确保 Web 应用程序代理 计算机配置了正确的根 CA,以信任后端服务器证书。
13006 当错误代码0x80072ee7时,失败的原因是无法解析后端服务器 URL。 WinHttpSendRequest 函数 (winhttp.h) 检查后端服务器 URL 是否正确,以及是否可以从 Web 应用程序代理 计算机正确解析其名称。
13007

未在预期间隔内收到来自后端服务器的 HTTP 响应。

后端服务器请求超时或速度缓慢或无响应。 检查后端服务器配置。 如果速度较慢,检查与后端服务器的连接,并考虑更改 的 Web 应用程序代理全局配置参数 cmdletInactiveTransactionsTimeoutSec

References