Asp.net 在HttpModule中更新的PerformanceCounter未在PerfMon中更新
我正在尝试将PerformanceCounter日志添加到我们的WebForms应用程序中。我正在尝试移植一个MVC实现,它使用ActionFilters将每个控制器操作的请求持续时间写入自定义性能计数器实例 我的实现是编写一个HttpModule,它记录OnBeginRequest和OnEndRequest以写入这些定制性能计数器。但是,当我在PerfMon中查看时,我可以看到我的计数器的实例显示在PerfMon中,但是这些值都是空的(“----”) 我正在使用以下代码初始化性能计数器:Asp.net 在HttpModule中更新的PerformanceCounter未在PerfMon中更新,asp.net,httpmodule,performancecounter,Asp.net,Httpmodule,Performancecounter,我正在尝试将PerformanceCounter日志添加到我们的WebForms应用程序中。我正在尝试移植一个MVC实现,它使用ActionFilters将每个控制器操作的请求持续时间写入自定义性能计数器实例 我的实现是编写一个HttpModule,它记录OnBeginRequest和OnEndRequest以写入这些定制性能计数器。但是,当我在PerfMon中查看时,我可以看到我的计数器的实例显示在PerfMon中,但是这些值都是空的(“----”) 我正在使用以下代码初始化性能计数器: va
var counter = new PerformanceCounter {
CategoryName = categoryName,
CounterName = counterName,
InstanceName = instanceName,
ReadOnly = false,
InstanceLifetime = PerformanceCounterInstanceLifetime.Process,
RawValue = 0,
};
即使我没有更新该值,我也会假设最后一个值是0,但它是'----'
与本文关联的示例中的代码确实有效,并且使用相同的语法。我确实注意到,由MVC属性编写的计数器没有“Parent”,但是由WebForms模块创建的计数器指定了一个Parent。我不知道这是否与此有关
我已检查以确保事件日志中未记录任何错误。我希望得到有关我的性能计数器为何不更新的指导
谢谢
更新日期2014年6月5日
我发现问题是实例名称中有一个“/”,它会变成父/实例,一旦创建就找不到它。请确保清理实例名称,以确保不存在正斜杠,否则将无法更新值。我发现问题在于我分配的实例名称中存在正斜杠(“/”),该斜杠被拆分为父/实例,创建后无法找到。确保清理实例名称以确保不存在正向斜杠,否则将无法更新性能计数器的值