利用失败请求跟踪功能,可以在出现问题时捕获相应的 XML 格式的日志,从而无需重现该问题即可开始故障排除。此外,还可以定义应用程序的失败条件并配置要基于 URL 记录的跟踪事件。
失败请求跟踪可以在两个级别进行配置:
- 在站点级别,可以启用或禁用跟踪并配置日志文件设置。
- 在应用程序级别,可以指定捕获跟踪事件时的失败条件,同时还可以配置应在日志文件条目中捕获的跟踪事件。
(一)查看失败请求跟踪规则的列表
若要管理失败请求的跟踪规则,可以查看包含特定配置级别所有失败请求跟踪规则的列表。可以按路径、关联的跟踪提供程序、HTTP 状态代码、处理请求所用的时间或范围(本地或继承)对该列表进行排序。此外,还可以按范围对规则进行分组,以便快速查看哪些规则适用于当前配置级别,以及哪些规则是从父级继承而来的。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"失败请求跟踪规则"。
此外,也可通过命令行方式实现,若要查看失败请求跟踪规则的列表,请使用下面的语法:
appcmd configure trace "string"
变量 string 是要查看其失败请求跟踪规则列表的站点的名称。
(二)为失败请求启用跟踪日志记录
如果希望 IIS 记录有关未能提供站点或应用程序内容的请求的信息,就可以启用针对失败请求的跟踪日志记录。在启用针对失败请求的跟踪日志记录后,IIS 将提供有针对性的日志,无需再从充满无关日志条目的列表中费力查找,即可找到失败的请求。此外,无需重现错误即可解决它们。
可以配置以下内容:
- 日志文件的位置
- 要保留的最大日志文件数
- 日志文件的最大大小。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"连接"窗格中,单击"网站"。
3. 在"功能视图"中,选择要为其启用跟踪日志记录的站点。
4. 在"操作"窗格的"配置"下,单击"失败请求跟踪"。
5. 在"编辑网站失败请求跟踪设置"对话框中,选择"启用",以便为该站点启用日志记录。
6. 在"目录"文本框中,键入要用于存储日志文件的路径,或者单击浏览按钮("…")在计算机上查找所需的位置。默认路径为 %SystemDrive%\inetpub\logs\FailedReqLogFiles。
注:
最佳做法是将日志文件(例如失败请求跟踪的日志文件)存储在 systemroot 之外的目录中。
7. 在"跟踪文件的最大数量"文本框中,键入要保留的跟踪日志文件的最大数量,然后单击"确定"。
(三)禁用失败请求跟踪日志记录
当不再需要跟踪对站点或站点上应用程序的失败请求时,可禁用对失败请求的站点级跟踪日志记录。 禁用了对失败请求的跟踪日志记录后,IIS 便不再创建跟踪日志来记录针对该站点的、按照失败定义界定为失败的任何请求。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"连接"窗格中,单击"网站"。
3. 在"功能视图"中,单击要为其禁用跟踪日志记录的站点。
4. 在"操作"窗格的"配置"下,单击"失败请求跟踪"。
5. 在"编辑网站失败请求跟踪设置"对话框中,清除"启用",然后单击"确定"。
(四)为失败请求创建跟踪规则
如果向服务器发送的某一请求失败或者耗费过长时间,可以定义一个失败请求跟踪规则,此规则将捕获此请求的跟踪事件并在这些跟踪事件发生时将其记入日志,而无需重现相应的错误。只有当请求超出了为完成处理而分配的时间间隔,或者为响应生成了指定的 HTTP 状态和子状态代码组合时,才将事件写入跟踪日志中。跟踪日志只包含特定于该失败请求的信息。无需再查阅包含每个请求的大型日志文件,即可找到所需的有关特定失败请求的信息。
注: 必须先启用跟踪日志记录,然后才可以为失败的请求创建跟踪日志。有关如何启用跟踪日志记录的详细信息,请参阅 IIS 7.0:为失败请求启用跟踪日志记录。
注: 添加配置设置时,将在本地级别以及继承该设置的所有子级别中添加该设置。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"失败请求跟踪规则"。
3. 在"失败请求跟踪规则"页中,单击"操作"窗格中的"添加"。
4. 在"添加失败请求跟踪规则"对话框的"指定要跟踪的内容"区域中,选择:
- 所有内容(*) - 当要跟踪目录中的所有文件时。
- ASP.NET (*.aspx) - 当要跟踪目录中的所有 .aspx 文件时。
- ASP (*.asp) - 当要跟踪目录中的所有 .asp 文件时。
- 自定义 - 当要为某一自定义内容集(如"xyz.exe"或"*.jpg")定义失败时。它最多只能包含一个通配符,并且必须位于设置失败请求定义的目录内?。
5. 单击"下一步"。
6. 在"添加失败请求跟踪规则"对话框的"定义跟踪条件"区域中,选择以下一个或多个条件进行跟踪:
- 状态代码 - 输入要跟踪的状态代码。可以在该列表中输入多个以逗号分隔的状态代码。还可以使用子状态代码来细分状态代码,如"404.2, 500"。
- 所用时间 - 输入请求应花费的最长时间(以秒为单位)。
- 事件严重性 - 从"事件严重性"下拉列表中选择要跟踪的严重性级别。可以选择"错误"、"严重错误"或"警告"。
注: 如果指定了所有条件,则满足的第一个条件将生成失败请求跟踪日志文件。
7. 单击"下一步"。
8. 在"添加失败请求跟踪规则"对话框的"选择跟踪提供程序"区域中的"提供程序"下,选择以下一个或多个跟踪提供程序:
- ASP - 当要跟踪 ASP 请求的执行操作的开始和完成时。
- ASPNET - 当要查看请求转入和转出托管代码的情况时。这包括 *.aspx 请求。
- ISAPI 扩展 - 当要跟踪请求转入和转出 ISAPI 扩展进程的情况时。
- WWW 服务器 - 当要通过 IIS 工作进程跟踪请求时。
9. 在"添加失败请求跟踪规则"对话框的"选择跟踪提供程序"区域中的"详细程度"下,选择以下一种或多种详细级别:
- 常规 - 提供给出请求活动上下文的信息,例如,将请求的 URL 和谓词记入日志的 GENERAL_REQUEST_START 事件。
- 严重错误 - 提供可导致进程退出或即将导致进程退出的操作的相关信息。
- 错误 - 提供遇到错误并且无法继续处理请求的组件的相关信息。这些错误通常指示服务器端问题。
- 警告 - 提供遇到错误但可以继续处理请求的组件的相关信息。
- 信息 - 提供有关请求的一般信息。
- 详细 - 提供有关请求的详细信息。这是默认选择。
10. 如果在第 8 步中选择了"ASPNET"跟踪提供程序,请在"添加失败请求跟踪规则"对话框的"选择跟踪提供程序"区域中的"区域"下,选择此提供程序要跟踪的以下一个或多个功能区域:
- 结构 - 当要跟踪主要与进入和离开 ASP.NET 结构的各个部分相关的事件时。
- 模块 - 当要跟踪请求进入和离开各个 HTTP 管道模块时记录的事件时。
- 页 - 当要生成与执行特定 ASP.NET 页相关事件(例如,Page_Load 等)相对应的跟踪事件时。
- AppServices - 当要跟踪记录为新应用程序服务功能一部分的事件时。
11. 如果在第 8 步中选择了"WWW 服务器"跟踪提供程序,请在"添加失败请求跟踪规则"对话框的"选择跟踪提供程序"区域中的"区域"下,选择此提供程序要跟踪的以下一个或多个功能区域:
- 身份验证 - 当要跟踪身份验证尝试时,例如,跟踪已通过身份验证的用户名、身份验证方案(匿名、基本等)以及身份验证尝试的结果(成功、失败、错误等)时。
- 安全性 - 当要在 IIS 服务器因与安全有关的原因而拒绝请求(例如,拒绝客户端访问资源的请求)的情况下生成跟踪事件时。
- 筛选器 - 当要确定 ISAPI 筛选器处理请求所用的时间时。
- StaticFile - 当要跟踪完成静态文件请求所用的时间时。
- CGI - 当要在请求针对 CGI 文件的情况下生成跟踪事件时。
- 压缩 - 当要在响应为压缩响应的情况下生成跟踪事件时。
- 缓存 - 当要为与请求关联的缓存操作生成跟踪事件时。
- RequestNotifications - 当要在进入和退出时捕获所有请求通知时。
- 模块 - 当要跟踪在请求进入和离开各个 HTTP 管道模块时记入日志的事件,或要捕获托管模块的跟踪事件时。
12. 单击"完成"。
(五)编辑失败请求跟踪规则
当要更改规则的失败定义时,可更改失败请求跟踪设置。当要收集有关失败请求的其他信息时也可更改这些设置,例如,当要更改在将请求视为失败请求前等待的响应时间长度时即可更改这些设置。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"失败请求跟踪规则"。
3. 在"失败请求跟踪规则"页中,单击要更改的规则,然后单击"操作"窗格中的"编辑"。
4. 在"指定要跟踪的内容"对话框中,单击"下一步"。
5. 也可以在"定义跟踪条件"对话框中执行以下一项或多项操作:
- 在"状态代码"文本框中更改状态代码,以便跟踪更改后的状态代码的失败情况。
- 更改"所用时间(秒)",在"所用时间(秒)"文本框中键入时间间隔。
- 通过从"事件严重性"下拉列表中选择新的严重性来更改事件严重性,然后单击"下一步"。
6. 也可以在"选择跟踪提供程序"对话框中执行以下一项或多项操作以更改提供程序:
- 如果要将 IIS 配置为跟踪 ASP 请求,请单击"ASP"。
- 如果要将 IIS 配置为跟踪 ASP.NET 请求,请单击"ASPNET"。
- 如果要将 IIS 配置为跟踪 WWW 服务器请求,请单击"WWW 服务器"。
- 如果要将 IIS 配置为跟踪 ISAPI 请求,请单击"ISAPI 扩展"。
7. 也可以单击某一提供程序以更改其详细级别。
8. 在"提供程序属性"下的"详细程度"下拉列表中,单击一个详细级别。
9. 针对在"选择跟踪提供程序"对话框中选择并且要更改其详细级别的每个提供程序,重复执行第 7 步和第 8 步。
10. 也可以单击某一提供程序以更改希望其跟踪的区域。
11. 在"区域"下,选择希望此提供程序跟踪的区域。
12. 针对在"选择跟踪提供程序"对话框中选择并且要更改其跟踪的区域的每个提供程序,重复执行第 10 步和第 11 步。
13. 单击"完成"。
注: 必须指定至少一个跟踪提供程序才能使"完成"按钮启用。
(六)删除失败请求跟踪规则
如果不再需要跟踪特定的请求故障,则可以删除失败请求的跟踪规则。可以删除本地级别的失败请求跟踪规则,也可以删除继承自父级别的失败请求跟踪规则。
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"失败请求跟踪规则"。
3. 在"失败请求跟踪规则"页上,单击要删除的跟踪规则以将其选中。
4. 在"操作"窗格中,单击"删除",然后单击"是"。