私は数日以来これを理解しようとしているので、テストケースを思いつきました:
- 新しいasp.net mvcプロジェクトを開始する
HomeController.Index で、コードを次のように置き換えます
var test = new PerformanceCounter("toto", "cac"); return Content("toto");
IIS Express を使用するように設定されていることを確認してください
- デバッグ時にプロジェクトを起動
私のマシンでは、PerformanceCounter 行で永久にハングします。停止ボタンを押すと、次の statcktrace が表示されます。
[Managed to Native Transition]
mscorlib.dll!Microsoft.Win32.RegistryKey.InternalGetValue(string name, object defaultValue, bool doNotExpand, bool checkSecurity) + 0x5ae bytes
mscorlib.dll!Microsoft.Win32.RegistryKey.GetValue(string name) + 0x29 bytes
System.dll!System.Diagnostics.PerformanceMonitor.GetData(string item) + 0x67 bytes
System.dll!System.Diagnostics.PerformanceCounterLib.GetPerformanceData(string item) + 0xbb bytes
System.dll!System.Diagnostics.PerformanceCounterLib.CategoryTable.get() + 0x6a bytes
System.dll!System.Diagnostics.PerformanceCounterLib.CounterExists(string category, string counter, ref bool categoryExists) + 0x1a bytes
System.dll!System.Diagnostics.PerformanceCounterLib.CounterExists(string machine, string category, string counter) + 0x4f bytes
System.dll!System.Diagnostics.PerformanceCounter.InitializeImpl() + 0x2eb bytes
System.dll!System.Diagnostics.PerformanceCounter.PerformanceCounter(string categoryName, string counterName, string instanceName, bool readOnly) + 0x98 bytes
System.dll!System.Diagnostics.PerformanceCounter.PerformanceCounter(string categoryName, string counterName) + 0x13 bytes
TestPerfCounter.dll!TestPerfCounter.Controllers.HomeController.Index() 17 行目 + 0x21 バイト C#
何か案が ?開発サーバーに切り替えると、ハングしません...