相关文章推荐

基于请求的跟踪在独立 IIS 服务器和 Azure Web 应用中都可用,并提供一种方法来确定请求的确切发生情况以及原因,前提是可以重现所遇到的问题。 某些请求的性能不佳、其他请求上与身份验证相关的故障、ASP 或 ASP.NET 的服务器 500 错误等问题通常很难进行故障排除,除非你捕获了问题发生时的跟踪。 以下文章讨论 IIS 服务器上的失败请求跟踪。 有关使用 Azure Web 应用执行此操作的信息,请参阅 使用 Visual Studio 排查Azure 应用服务中的应用 问题。

失败请求跟踪旨在缓冲请求的跟踪事件,并且仅在请求“失败”时将其刷新到磁盘,在该请求中提供“失败”的定义。 如果想知道为什么收到 404.2 错误消息或请求开始挂起,请使用失败的请求跟踪。

本文中演示的任务包括:

  • 启用失败的请求跟踪模块
  • 配置失败请求跟踪日志文件语义
  • 定义要保留失败请求跟踪的 URL,包括失败定义和要跟踪的区域
  • 生成失败条件并查看生成的跟踪
  • 安装 IIS

    必须先安装 IIS 7 或更高版本,然后才能执行本文中的任务。 浏览以查看 http://localhost/ IIS 是否已安装。 如果未安装 IIS,请参阅 在 Windows Server 2008 上安装 IIS 以获取安装说明。 安装 IIS 时,请确保还安装以下内容:

  • 万维网服务下的 ASP.NET (- 应用程序开发功能 - ASP.NET)
  • 在万维网服务下跟踪 (- 运行状况和诊断 - 跟踪)
  • 以管理员身份登录

    确保用于登录的帐户是管理员帐户,或位于管理员组中。

    默认情况下,在“管理员”组中不会授予你完成管理员用户权限。 必须以管理员身份运行应用程序,可以通过右键单击应用程序图标并选择 “以管理员身份运行”来执行

    在执行以下任务之前,必须备份配置。

    对配置进行备份

  • 单击“ 启动 ”>“ 所有程序 ”>“ 附件 ”。

  • 右键单击“命令提示符” ,然后单击“以管理员身份运行”

  • 在命令提示符下运行以下命令:

    %windir%\system32\inetsrv\appcmd add backup cleanInstall
    

    创建示例内容

  • 导航到 %systemdrive%\inetpub\wwwroot

  • 如果要还原现有内容) 或删除内容,请将内容移动到安全位置 (。

  • 创建一个空白文件并将其命名为 test.asp。

  • 在命令提示符中,导航到 \inetpub\wwwroot 中的 test.asp 文件。

  • 在 test.asp 文件中,粘贴以下内容:

    <h2>Failed Request Tracing Lab</h2><br>
    <br>Today's date is <% response.write(Date()) %>
    

    禁用 ASP

    必须为此任务禁用 ASP。 ASP 仅作为示例禁用,用于本文中的任务。

    禁用 ASP

  • 打开 IIS 管理器。

  • 双击 ISAPI 和 CGI 限制

  • 选择 “活动服务器页”。 在“ 操作 ”窗格中,单击“ 拒绝 ”以禁用 ASP。

    启用Failed-Request跟踪

    启用失败请求跟踪后,需要配置日志文件所在的位置。 在此任务中,将为默认网站启用失败请求跟踪,并指定将日志文件放在何处。 然后,将配置要为其生成失败日志的失败。

    步骤 1:为站点启用Failed-Request跟踪并配置日志文件目录

  • 使用管理员用户权限打开命令提示符。

  • 启动 inetmgr

  • 在“ 连接 ”窗格中,展开计算机名称,展开 “站点”,然后单击“ 默认网站”。

  • 在“ 操作 ”窗格中的 “配置”下,单击“ 失败的请求跟踪”。

  • “编辑网站失败的请求跟踪设置 ”对话框中,配置以下内容:

  • 选中“ 启用 ”复选框。

  • 保留其他设置的默认值。

    现已为默认网站启用失败请求跟踪日志记录。 检查 %windir%\system32\inetsrv\config\applicationHost.config文件以确认配置如下所示:

    <system.applicationHost>
       <sites> 
          <!-- site & app defaults --> 
          <site name="Default Web Site" id="1"> 
             <!-- other site configuration --> 
             <traceFailedRequestsLogging  enabled="true" /> 
          </site> 
       </sites> 
    </system.applicationHost>
    

    步骤 2:配置失败定义

    在此步骤中,将为 URL 配置失败定义,包括要跟踪的区域。 对于尚未启用的扩展的任何请求,IIS 将排查 IIS 返回的 404.2 问题。 这有助于确定需要启用的特定扩展。

  • 使用管理员用户权限打开命令提示符。

  • 启动 inetmgr

  • 在“ 连接 ”窗格中,展开计算机名称,展开 “站点”,然后单击“ 默认网站”。

  • 双击 “失败的请求跟踪规则”。

  • 单击“完成”。

  • 在“操作”窗格中,单击“添加”

  • “添加失败的请求跟踪规则 ”向导的“ 指定内容到跟踪 ”页上,选择“ 所有内容” (*) 。 单击“下一步”。

  • 在“ 定义跟踪条件 ”页上,选中状态 代码 () 复选框,并输入 404.2 作为要跟踪的状态代码。

  • 单击“下一步”。

  • 在“ 选择跟踪提供程序 ”页上的“ 提供程序”下,选中 “WWW 服务器 ”复选框。 在 “区域”下,选中“ 安全 ”复选框并清除所有其他复选框。 生成的问题会导致引发安全错误跟踪事件。 一般情况下,身份验证和授权 (包括 ISAPI 限制列表问题) 问题可以使用 WWW 服务器 – 安全区域配置进行诊断以跟踪。 但是,由于 FREB.xsl 样式表有助于突出显示错误和警告,因此仍可使用默认配置记录所有区域和提供程序中的所有事件。 在 详细级别下,选择 “详细”。

  • 单击“完成”。 应会看到默认 网站的以下定义:

    IIS 管理器使用<location>标记将配置%windir%\system32\inetsrv\config\applicationHost.config写入文件。 配置应如下所示:

    <location path="Default Web Site"> 
        <system.webServer> 
            <tracing> 
                <traceFailedRequests> 
                    <add path="*"> 
                        <traceAreas> 
                            <add provider="WWW Server" areas="Security" verbosity="Verbose" /> 
                        </traceAreas> 
                        <failureDefinitions statusCodes="404.2" /> 
                </traceFailedRequests> 
            </tracing> 
        </system.webServer> 
    </location>
    

    测试和查看失败请求日志文件

    在此任务中,将生成失败的请求并查看生成的跟踪日志。 你已将 IIS 配置为捕获使用 HTTP 响应代码 404.2 失败的请求的跟踪日志 http://localhost/\*.asp 。 现在,请验证它是否正常工作。

    步骤 1:生成错误和失败请求日志文件

  • 打开新的 Internet Explorer 窗口。

  • 键入以下地址: http://localhost/test.asp

  • 应该看到以下内容:

    步骤 2:查看失败请求日志文件

  • 生成失败的请求后,请打开具有管理员用户权限的命令提示符并导航到 %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1

  • 运行 开始 以从目录启动 Internet Explorer 窗口。

  • 请注意以下几点:当 IIS 写入失败的请求日志文件时,它会 为每个失败的请求写入一个文件。 还编写了 freb.xsl 样式表,每个目录一个。 当查看生成的失败请求日志文件时,这有助于查看 (,例如上述 fr000001.xml) 。

  • 右键单击 404.2 错误的日志文件,然后单击“ 使用 > Internet Explorer 打开”。 如果这是你第一次打开失败的请求跟踪文件,则必须将 about:internet 添加到受信任的站点列表中,因为默认情况下已启用 Internet Explorer 增强的安全配置。 如果是这种情况,你将看到以下内容:

  • Internet Explorer 对话框中,单击“ 添加...” ,将 about:internet 添加到受信任的站点列表中。 这允许 XSL 正常工作。 将 about:Internet 添加到受信任的站点列表后,你将看到以下内容:

    失败请求的摘要记录在顶部,错误&警告表标识严重性为 WARNING、ERROR 或 CRITICAL ERROR 的任何事件。 在此示例中,WARNING 严重级别是由于 ISAPI 限制造成的。 您尝试加载的图像为 %windir%\system32\inetsrv\asp.dll

  • 使用文本编辑器直接打开原始 XML 文件,并查看每个事件的内容。

    已完成两个任务:如果 IIS 返回 404.2 状态代码,则配置失败的请求跟踪以捕获 * 的跟踪;并验证 IIS 是否捕获了请求的跟踪。 你还验证了 freb*.xml 日志文件不包含对所发出的请求的任何其他请求,因为请求没有 404.2 返回代码。 在查阅失败日志文件时,你确定失败的原因是该请求禁用了扩展。 可以尝试其他非 HTML 页面 ((如 gifs 或 jpgs)) ,并请注意日志文件不会添加这些跟踪。 还可以通过在 failureDefinitions 中设置 timeTaken 字段来轻松将其更改为 404,或者捕获失败。如果请求花费的时间超过 30 秒。

    完成本文中的任务后,可以还原配置的备份。 使用管理员用户权限运行以下命令:

    %windir%\system32\inetsrv\appcmd restore backup cleanInstall
    
  •  
    推荐文章