首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >win7 PC上缺少ASP.NET ETW提供程序

win7 PC上缺少ASP.NET ETW提供程序
EN

Stack Overflow用户
提问于 2015-04-24 20:41:07
回答 1查看 365关注 0票数 4

我正在编写一个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”作为提供程序时,我确实得到了事件,但它们来自未知的提供程序。所以我猜清单内容不见了。

我的示例代码如下

代码语言:javascript
运行
复制
    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;
    }
EN

Stack Overflow用户

发布于 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) ->滚动服务添加角色服务运行状况和诊断->跟踪

希望这能有所帮助。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29847815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档