5

我一直在尝试捕获由 IIS 或 ASP.NET 创建的包含请求 URL 的 ETW 事件,但没有取得多大成功。

我正在使用 Windows 8(开发)和 Windows Server 2008 R2(生产),因此分别使用 IIS 8.0 和 7.5。我知道在 IIS 8.5 中有更好的 ETW 支持,但不幸的是,目前这无济于事。

使用PerfView,收集系统范围的事件并使用以下附加提供程序,我在命名空间中获得了一些事件,Microsoft-Windows-IIS-Configuration但没有包含单个请求详细信息。

在此处输入图像描述

其他提供者

Microsoft-Windows-IIS-APPHOSTSVC:*:5,Microsoft-Windows-IIS-Configuration:*:5,Microsoft-Windows-IIS-FTP:*:5,Microsoft-Windows-IIS-IisMetabaseAudit:*:5,Microsoft-Windows-IIS-IISReset:*:5,Microsoft-Windows-IIS-W3SVC:*:5,Microsoft-Windows-IIS-W3SVC-PerfCounters:*:5 ,Microsoft-Windows-IIS-W3SVC-WP:*:5,Microsoft-Windows-IIS-WMSVC:*:5

如果我运行logman query providers,我会得到以下信息,所以我知道这些提供程序可用(在我的 Windows 8 机器上)。

Provider                                 GUID
-------------------------------------------------------------------------------

Microsoft-Windows-IIS-APPHOSTSVC         {CAC10856-9223-48FE-96BA-2A772274FB53}
Microsoft-Windows-IIS-Configuration      {DC0B8E51-4863-407A-BC3C-1B479B2978AC}
Microsoft-Windows-IIS-FTP                {AB29F35C-8531-42FF-810D-B8552D23BC92}
Microsoft-Windows-IIS-IisMetabaseAudit   {BBB924B8-F415-4F57-AA45-1007F704C9B1}
Microsoft-Windows-IIS-IISReset           {DA9A85BB-563D-40FB-A164-8E982EA6844B}
Microsoft-Windows-IIS-W3SVC              {05448E22-93DE-4A7A-BBA5-92E27486A8BE}
Microsoft-Windows-IIS-W3SVC-PerfCounters {90303B54-419D-4081-A683-6DBCB532F261}
Microsoft-Windows-IIS-W3SVC-WP           {670080D9-742A-4187-8D16-41143D1290BD}
Microsoft-Windows-IIS-WMSVC              {23108B68-1B7E-43FA-94FB-EC3066805744}

我也尝试过使用 logman 创建一个 ETL 文件,但这似乎没有捕获任何与 IIS 相关的内容:

etw.ps1

logman start ASPTrace -pf providers.txt -ets
Start-Sleep -Seconds 30
logman stop ASPTrace -ets

提供者.txt

"Microsoft-Windows-IIS-APPHOSTSVC" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-Configuration" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-FTP" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-IisMetabaseAudit" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-IISReset" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-W3SVC" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-W3SVC-PerfCounters" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-W3SVC-WP" 0xFFFFFFFE 5
"Microsoft-Windows-IIS-WMSVC" 0xFFFFFFFE 5

0xFFFFFFFE我已经用and尝试了上述方法0xFFFFFFFF

4

2 回答 2

4

Microsoft-Windows-HttpService {DD5EF90A-6398-47A4-AD34-4DCECDEF795F}

查看交付事件。它具有 RequestUrl,以及请求转发到的应用程序池。

这在 Windows Vista 和更高版本中可用。

于 2013-11-07T06:59:57.367 回答
1

使用System.Diagnostics.Tracing.EventSource创建您自己的ETW 提供程序类,并在需要时在此处记录项目中的请求 url。

在此处输入图像描述

您现在还可以使用WPT 来捕获事件

于 2013-09-14T07:41:46.663 回答