使用失败的请求跟踪规则对应用程序请求路由进行故障排除

适用于: Internet Information Services 7.0 及更高版本

失败请求跟踪是一种功能强大的工具,可用于排查 IIS 7.0 及更高版本中的请求处理失败。 本文提供启用失败请求跟踪规则以调试应用程序请求路由中的失败和跟踪步骤的步骤。 有关失败请求跟踪规则的详细信息,请参阅 在 IIS 8.5 中使用跟踪排查失败请求的问题。

目标

配置失败的请求跟踪规则,并了解排查应用程序请求路由问题时要查找的内容。

先决条件

本演练需要满足以下先决条件:

  • Windows 2008 上的 IIS 7.0 或更高版本 (安装了 IIS 跟踪角色服务的任何 SKU) 或更高版本。
  • Microsoft 应用程序请求路由和依赖模块。
  • 至少两个具有工作站点和应用程序的应用程序服务器。

如果尚未安装应用程序请求路由,请从 下载中心下载它,并按照 安装应用程序请求路由中所述的步骤进行安装

另一个先决条件是,你已完成 使用应用程序请求路由模块 并配置了应用程序请求路由。 在继续执行以下部分之前,应用程序请求路由应处于工作状态。

步骤 1:配置失败的请求跟踪规则

使用 UI 或命令行为应用程序请求路由配置失败请求跟踪规则。

如何使用 UI 配置失败请求跟踪规则

  1. 启动 Internet Information Services (IIS) Manager (inetmgr) 。
  2. 选择 “默认网站”。
    显示“网站”列表已展开的屏幕截图。突出显示了默认网站。
  3. “操作 ”窗格中的 “配置”下,选择“ 失败的请求跟踪...”
    屏幕截图重点显示“操作”窗格中的“失败请求跟踪”。
  4. “编辑网站失败的请求跟踪设置 ”对话框中,选中 “启用 ”复选框。
    “编辑网站失败的请求跟踪设置”对话框的屏幕截图。
  5. 选择 “确定” 以保存更改。
  6. 选择 “默认网站”。
  7. 双击“ 失败的请求跟踪规则”。
  8. “操作 ”窗格中,选择“ 添加...”
    “添加失败请求跟踪规则”窗口的屏幕截图。已选择所有内容。
    选择“ 所有内容 (*) ”,然后选择“ 下一步”。
  9. 选择“ 状态代码 () : ”,然后输入 200-399
    添加失败请求跟踪规则的屏幕截图。状态代码已选中。
    选择“下一步”。 上述配置已创建失败请求跟踪规则,该规则在状态代码介于 200 和 399 之间时写入跟踪。
  10. 取消选择 ASPASPNETISAPI 扩展。 选择 “WWW 服务器”后,取消选择 “区域:”下的所有内容 ,重写和RequestRouting 除外。 由于应用程序请求路由依赖于 URL 重写模块来检查传入请求,因此建议为应用程序请求路由 (RequestRouting) 和 URL 重写模块启用跟踪 (重写) 。
    “编辑失败的请求跟踪规则”窗口的屏幕截图。在“提供程序”部分选择了“W W W 服务器”。
    有关 URL 重写模块跟踪的其他信息,请参阅 使用失败的请求跟踪来跟踪重写规则
  11. 选择“完成”

如何使用命令行配置失败请求跟踪规则

  1. 使用管理员权限打开命令提示符。

  2. 导航到 %windir%\system32\inetsrv

  3. 若要在默认网站上启用失败请求跟踪,请运行以下命令:

    appcmd set site "Default Web Site" -traceFailedRequestsLogging.enabled:"true" /commit:apphost
    
  4. 若要配置上述 UI 中所示的失败请求跟踪规则,请运行以下命令:

    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*']"
    
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='WWW Server',areas='Rewrite,RequestRouting',verbosity='Verbose']"
    
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /[path='*'].failureDefinitions.statusCodes:"200-399"
    

步骤 2:分析失败的请求跟踪日志

在此步骤中,你将将请求发送到应用程序请求路由并分析失败的请求跟踪日志。

查看失败的请求跟踪日志

  1. 导航到写入失败请求跟踪日志的目录。 默认情况下,位置为 %SystemDrive%\inetpub\Logs\FailedReqLogFiles\

  2. 将目录更改为与 默认网站匹配的文件夹。 默认情况下,它是 W3SVC1。 如果不确定,请在 IIS 管理器中选择“默认网站”,然后在“操作”窗格中选择“高级设置...”ID 的值指示相应的文件夹。 (例如,ID 1 对应于 W3SVC1) 。

  3. 如果存在任何 XML 文件,请键入以下内容将其删除:

    del *.xml
    
  4. 将请求发送到应用程序请求路由。 如果应用程序请求路由正常运行,则会导致 200 响应,该响应在 步骤 1 中指定的 200 到 399 范围内。 因此,日志将写入上述位置。

  5. 列出目录中的文件以确认已写入新的 XML 文件。

  6. 打开 XML 文件。 选择“ 请求详细信息”。 选择“ 完成请求跟踪”,然后选择“ 全展开”。 下图是应用程序请求路由的失败请求跟踪日志的示例:
    浏览器窗口的屏幕截图,其中显示了选项卡中示例网站的“请求诊断”。

  7. 请仔细了解以下部分:

    • GENERAL_REQUEST_HEADERS:

      • 标头:显示应用程序请求路由收到的 HTTP 标头。
    • ARR_REQUEST_ROUTED:

      • WebFarm:指示路由请求的服务器组的名称。
      • 服务器:指示路由请求的目标服务器。
      • 算法:指示使用哪种负载均衡算法。
      • RoutingReason:指示选择服务器背后的决策。
    • ARR_SERVER_STATS

      • 状态:目标服务器的可用性。
      • TotalRequests:已发送到此服务器的请求数的运行时统计信息。
      • CurrentRequests:针对此服务器的并发 HTTP 请求数的运行时统计信息。
      • BytesSent:有关已发送到此服务器的 KB 数据量(以 KB 为单位)的运行时统计信息。
      • BytesReceived:有关从此服务器接收的数据量(以 KB 为单位)的运行时统计信息。
      • ResponseTime:此服务器的响应速度(以毫秒为单位)的运行时统计信息。
    • GENERAL_RESPONSE_HEADERS

      • 标头:显示来自目标服务器的响应 HTTP 标头。
    • GENERAL_RESPONSE_ENTITY_BUFFER

      • 缓冲区:显示来自目标服务器的响应实体。
    • 添加了以下时间戳,以指示相应事件的开始和结束时间,以分析应用程序请求路由的性能:

      • ARR_REQUEST_HEADERS_START
      • ARR_REQUEST_HEADERS_END
      • ARR_RESPONSE_HEADERS_START
      • ARR_RESPONSE_HEADERS_END
      • ARR_RESPONSE_ENTITY_START
      • ARR_RESPONSE_ENTITY_END
      • ARR_RESPONSE_ENTITY_START
      • ARR_RESPONSE_ENTITY_END

如果要在服务器核心上收集失败请求跟踪日志,请使用 freb.xsl 样式表将日志复制到有浏览器可用的计算机。

摘要

现已成功为应用程序请求路由配置失败请求跟踪规则。 失败的请求跟踪规则可用于排查和调试应用程序请求路由问题,以及了解它在为给定请求选择目标服务器时所做的路由决策,包括负载均衡算法。