我正在编写一个ETW使用者来监听ASP.NET事件。我有下面的示例代码,可以在Windows2008服务器上很好地工作,它可以看到ASP.NET提供者。我遇到的问题是,在我的Win7 (64) PC上,我看不到ASP.NET提供程序,因此此代码将所有事件显示为“未处理”。我已经确保安装了跟踪功能,并且applicationhost.config文件中有相应的值。
当我登录-query提供程序时,我在PC上看不到ASP.NET AFF081FE-0247-4275-9C4E-021F3DC1DA35提供程序,但在我正在测试的Win2008服务器上看到了这一点。
如何执行以下两项之一:将此作为提供商添加到我的Win7 PC?
或
让代码能够处理此消息,并在我的代码中提供清单。当我设置“AFF081FE-0247-4275-9c4e-021F3DC1DA35”作为提供程序时,我确实得到了事件,但它们来自未知的提供程序。所以我猜清单内容不见了。
我的示例代码如下
static void Test3()
{
var sessionName = "ASPNETMonitorSession";
using (var session = new TraceEventSession(sessionName, null))
{
Console.WriteLine("Starting Test1");
session.StopOnDispose = true;
Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e)
{
session.Dispose();
};
using (var source = new ETWTraceEventSource(sessionName, TraceEventSourceType.Session))
{
Action<TraceEvent> action = delegate(TraceEvent data)
{
Console.WriteLine("GOT EVENT: " + data.ToString());
};
var registeredParser = new RegisteredTraceEventParser(source);
registeredParser.All += action;
source.UnhandledEvents += delegate(TraceEvent data)
{
if ((int)data.ID != 0xFFFE)
Console.WriteLine("GOT UNHANDLED EVENT: " + data.Dump());
};
session.EnableProvider(new Guid("AFF081FE-0247-4275-9C4E-021F3DC1DA35"));
Console.WriteLine("Starting Listening for events");
source.Process();
}
}
Console.WriteLine("Done");
return;
}发布于 2015-05-06 01:33:12
ASP.NET跟踪在您的本地计算机上不可用的原因是它没有安装。如果您查看perfview帮助,它会为您提供有关如何启用它的说明。
仅供参考,perfview使用TracEevent来捕获跟踪。
就是这里
ASP.NET事件
ASP.NET有一组在处理每个请求时发送的事件。当打开ASP.NET事件时,您可以打开PerfView的特殊视图。默认情况下,PerfView会打开ASP.NET事件,但是,为了使这些事件正常工作,您还必须在安装ASP.NET时选择“跟踪”选项。因此,如果您没有看到ASP.NET事件,那么您正在运行一个ASP.NET场景,这可能是您没有获得数据的一个原因。要启用ASP.NET跟踪功能,最简单的启用跟踪功能的方法是使用操作系统附带的DISM工具。从提升的命令提示符DISM /online /Enable-Feature /FeatureName:IIS-HttpTracing运行以下命令
请注意,此命令将重新启动web服务(以使其生效),如果您的ASP.NET服务处理长(多秒)的请求,这可能会导致复杂性。这将强制DISM延迟(重新启动)或中止未完成的请求。因此,您可能希望将此计划与其他服务器维护一起进行。在特定机器上完成此配置后,它将持续存在。您也可以使用GUI界面手动完成此配置。您首先需要进入配置windows软件的对话框。这取决于您使用的是客户端还是服务器版本的操作系统。
在客户端-启动->控制面板->程序->程序和功能->打开或关闭-> Internet信息服务->万维网服务->运行状况和诊断服务器上的->跟踪-启动-> Computer ->右键单击->管理角色->网络服务器(IIS) ->滚动服务添加角色服务运行状况和诊断->跟踪
希望这能有所帮助。
https://stackoverflow.com/questions/29847815
复制相似问题