The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly

This is due to the performance counter (or category) not existing, but with a horrible error message.

Take a look in perfmon for the counter, it should be missing on the relevant machines.

I find this happens to the .Net perf counters sometimes (no idea why) but using lodctr1 gets them back. If you indicate which perf counter you are trying to get at we might be able to give you more help.

  1. Note that the example lined is for .Net 1.1, adjust for different frameworks accordingly.

I ran into a variant of this issue, while I could see the .net performance counter tab in reflector it actually had no counters in it.

I had to re-add them

lodctr /R
cd C:\Windows\Inf\.NETFramework
lodctr corperfmonsymbols.ini

I've spent good few hours on that issue, following all the instructions found on the web, so I've decided to share my solution, maybe it will save some time for the others. Finally I got a hint under one of the link in comments:

You’ll need to run Visual Studio as an administrator

My app is using MassTrasit with RabbitMQ, and it was failing on sending messages to the queue. Apparently it adds some perf counters under the hood and it was failing without Admin privileges with that very descriptive error. Funny thing you will need to run it as admin only first time (that's what deceived me).