Web 应用程序代理疑难解答

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

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

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

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

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

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

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

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

  • 在 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 了 PowerShell cmdlet 更改 Set-WebApplicationProxyConfiguration -RegenerateAccessCookiesEncryptionKey 了参数,则此事件是正常的,无需执行解决方案步骤。

检查与 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 了 PowerShell cmdlet 更改 Set-WebApplicationProxyConfiguration -RegenerateAccessCookiesEncryptionKey 了参数,则此事件是正常的,无需执行解决方案步骤。 检查与 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 应用程序代理收到无效的边缘令牌签名

确保在 Windows Server 2012 R2 上自动更新后,使用 Web 应用程序代理 更新的 Web 应用程序代理无法检测到更新的证书。
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

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

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

由于后端服务器响应 Kerberos 身份验证尝试时返回了 HTTP 401 错误,Web 应用程序代理无法对用户进行身份验证。

此事件可能表示 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 应用程序代理全局配置参数 cmdlet。InactiveTransactionsTimeoutSec

参考