use*_*852 2 c# perfmon performancecounter
我有这个简单的代码:
public void CreateCounters() {
if (PerformanceCounterCategory.Exists(_categoryName)) {
PerformanceCounterCategory.Delete(_categoryName);
}
// create logic…
}
Run Code Online (Sandbox Code Playgroud)
适用于我的机器.我在我的服务器上运行它,得到以下堆栈跟踪:
System has detected a fatal error. EXITING...
NativeErrorCode: 1010
ErrorCode: -2147467259
Message: The configuration registry key is invalid
TargetSite: Void RegisterFiles(System.String, Boolean)
HelpLink:
Source: System
Stack Trace:
at System.Diagnostics.PerformanceCounterLib.RegisterFiles(String arg0, Boolean unregister)
at System.Diagnostics.PerformanceCounterCategory.Delete(String categoryName)
at myApp.Common.Utils.PerformanceCounters.PerformanceCounters.CreateCounters()
at myApp.Common.Utils.PerformanceCounters.myAppPerformanceCounterReporter.Init()
at myApp.Common.Utils.PerformanceCounters.myAppPerformanceCounterReporter.get_Instance()
at myApp.Program.Main(String[] args)
Run Code Online (Sandbox Code Playgroud)
该类别存在于服务器上,我可以在perfmonGUI中看到它.
确定这是性能计数器机制中的一些错误,应该通过以下脚本修复:
cd %systemroot%\system32
lodctr /R
Run Code Online (Sandbox Code Playgroud)
看看这个链接:http://geekswithblogs.net/robz/archive/2008/08/10/possible-performance-counter-corruption-or-performance-counters-are-just-disabled.aspx