six demon bag

Wind, fire, all that kind of thing!


Process Explorer Error: .NET Performance Counters Are Corrupt

Today I encountered the following error message on one of my servers (running Windows Server 2008) when I started Process Explorer:

The .NET performance counters on this system are corrupt. Run Exctrlst from the Microsoft Windows Resource Kit to repair them.

exctrlst has been retired by Microsoft, but Server 2008 has a built-in command for managing performance counters: lodctr. Listing the .NET counters didn't show anything out of the ordinary, though:

C:\>lodctr /q:.NETFramework
Performance Counter ID Queries [PERFLIB]:
    Base Index: 0x00000737 (1847)
    Last Counter Text ID: 0x00001670 (5744)
    Last Help Text ID: 0x00001671 (5745)

[.NETFramework] Performance Counters (Enabled)
    DLL Name: mscoree.dll
    Open Procedure: OpenCtrs
    Collect Procedure: CollectCtrs
    Close Procedure: CloseCtrs
    First Counter ID: 0x00001360 (4960)
    Last Counter ID: 0x0000140E (5134)
    First Help ID: 0x00001361 (4961)
    Last Help ID: 0x0000140F (5135)

Just rebuilding the performance counters by running lodctr /r didn't fix the problem for me. I had to remove the counters for the .NET framework first and then rebuild them:

C:\>unlodctr .NETFramework

Removing counter names and explain text for .NETFramework
Updating text for language 009
C:\>lodctr /r

Info: Successfully rebuilt performance counter setting from system backup store

After that rebuild Process Explorer started without error.

Posted 11:58 [permalink]