我正在尝试将PerformanceCounter日志记录添加为WebForms应用程序的一部分。我正在尝试移植一个MVC实现,该实现使用ActionFilters将每个控制器操作的请求持续时间写入自定义性能计数器实例here。
我的实现是编写一个HttpModule,它记录OnBeginRequest和OnEndRequest以写入这些自定义性能计数器。但是,当我在PerfMon中查看时,我可以看到我的计数器的实例显示在PerfMon中,但值都是空的(" ------")。
我正在使用以下代码初始化性能计数器:
var counter = new PerformanceCounter {
CategoryName = categoryName,
CounterName = counterName,
InstanceName = instanceName,
ReadOnly = false,
InstanceLifetime = PerformanceCounterInstanceLifetime.Process,
RawValue = 0,
};
即使我没有更新该值,我也会假设Last值为0,但它是' -------'。
与文章相关的示例中的代码确实有效并使用相同的语法。我注意到MVC属性写的计数器没有' Parent'但是由WebForms模块创建的那些具有指定的父级。我不知道这与它有什么关系。
我已检查过以确保事件日志中没有记录任何错误。我很感激为什么我的性能计数器没有更新的指导。
由于
更新2014年6月5日 我发现问题是' /'在实例名称中,它被转换为父/实例,一旦创建就无法找到。确保清理实例名称以确保不存在正斜杠,或者您无法更新值。
答案 0 :(得分:0)
我发现问题是我分配的实例名称中的正斜杠('/'),它被拆分为父/实例,一旦创建就无法找到。确保清理实例名称以确保不存在正斜杠,否则您将无法更新性能计数器的值。