IIS httpTracing 设置无效

IIS httpTracing 设置无效

我正在尝试解决我们在特定 ASP.NET 页面上遇到的一些性能问题微软的 Perfecto 工具在 IIS 7.5 上。Perfecto 使用 IIS 内置的 ETW 钩子来报告特定的 HTTP 请求,并且运行良好。

但是,我只希望 IIS 发出一个特定页面的跟踪,比如我的 TestApp Web 应用程序中的“Default.aspx”。按照httpTracing 手册页,我应该能够将 traceUrls 元素添加到 TestApp 的根 web.config 文件中。这样做似乎不会对跟踪产生任何影响。

例如,我在 web.config 文件中使用了以下设置,到达 IIS 服务器的每个请求都会发送跟踪消息,而这些消息又会被 Perfecto 接收。(在 System.WebServer 部分)

<httpTracing>
   <traceUrls>
      <add value="/Default.aspx" />
   </traceUrls>
</httpTracing>

然后我发现服务器上的 applicationHost.config 文件有一个空元素。我尝试删除此元素以及 web.config 中的 httpTracing 元素。机器重启后,我仍然收到跟踪消息!我的理解是,httpTracing 元素的存在决定了 ETW 跟踪是否开启。我确保 machine.config 中也没有对 httpTracing 的引用。

不知所措之下,我决定使用服务器管理器删除 IIS 跟踪功能。重启后,我不再获得 ETW 跟踪。然后,我使用服务器管理器重新安装了 IIS 跟踪功能。正如预期的那样,httpTracing 元素重新出现在 applicationhost.config 文件中。所有站点和页面的跟踪消息再次开始发送。

然后我尝试在 applicationhost.config 级别使用 traceUrls 元素。这也没有过滤掉跟踪。

我肯定误解了 httpTracing 工作方式的一些关键知识。网络上也没有太多资源可以帮助我。

有人能告诉我我尝试的方法是否有效吗?有其他人使用 traceUrls 成功过滤每个页面的跟踪消息吗?

我应该注意,我也尝试将 applicationhost.config 中的以下设置更改为“允许”。但似乎没有帮助。

<section name="httpTracing" overrideModeDefault="Allow" />

相关内容