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

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

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

目标

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

先决条件

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

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

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

另一个先决条件是已使用 应用程序请求路由模块 并配置了应用程序请求路由。 在继续执行以下部分之前,应用程序请求路由应按工作顺序排列。

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

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

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

  1. 启动 Internet Information Services (IIS) 管理器(inetmgr)。
  2. 选择“默认网站”
    显示“网站”列表展开的屏幕截图。突出显示默认网站。
  3. 在“操作”窗格的“配置”下,选择“失败请求跟踪...”
    “操作”窗格中的“失败请求跟踪”的屏幕截图。
  4. “编辑网站失败的请求跟踪设置” 对话框中,选中“ 启用 ”复选框。
    “编辑网站失败请求跟踪设置”对话框的屏幕截图。
  5. 选择“确定”以保存更改。
  6. 选择“默认网站”
  7. 双击“失败请求跟踪规则”
  8. “操作 ”窗格中,选择“ 添加...”
    “添加失败的请求跟踪规则”窗口的屏幕截图。已选择所有内容。
    选择 “所有内容 ”,然后选择“ 下一步”。
  9. 选择 状态代码(s): 并输入 200-399
    “添加失败的请求跟踪规则”的屏幕截图。检查状态代码。
    选择下一步。 上述配置创建了失败的请求跟踪规则,该规则在状态代码介于 200 到 399 之间时写入跟踪。
  10. 取消选择“ASP”、“ASPNET”和“ISAPI 扩展”。 选择“WWW 服务器”后,除“重写”和“请求路由”外,取消选择“区域:”下的所有内容。 由于应用程序请求路由依赖于 URL 重写模块来检查传入的请求,因此建议为应用程序请求路由(RequestRouting)和 URL 重写模块(重写)启用跟踪。
    “编辑失败的请求跟踪规则”窗口的屏幕截图。“提供程序”部分选择了 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 为单位)的运行时统计信息。
      • BytesReceived:关于已从此服务器接收的数据量(以 KB 为单位)的运行时统计信息。
      • ResponseTime:关于此服务器响应性(以 ms 为单位)的运行时统计信息。
    • 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 样式表的日志复制到浏览器可用的计算机。

总结

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