I am getting repeated errors about the ReadOnly property on performance counters whenever I try to debug a .NET windows service app. This app works fine on x86 windows vista, or x86 windows 2003. It's just stopped working on my new 64bit dev machine.
I've run the relevant InstallUtil invocations on 64bit and 32bit command line VCVARS.bat, in admin mode. I get no errors setting up the category and each perf counter. But, regardless of whether I set the perf ctrs as readonly or not, I get this:
The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly.
UPDATE
I re-installed the machine with a 32bit version of Windows 7, and bizarrely I still get this开发者_运维百科 error. The only thing that has changed is moving from Windows Vista Business to Windows 7 Professional. Does this ring any bells?
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.
- 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).
I was getting this misleading error on my deployment machine, I was catching the error using FirstChanceException Mechanism, The IIS was repeatedly stopping the related Application Pool after occurring this error and I was getting the 'Service Unavailable' error when calling the site,
I tried many days to stop the counters or find/add the related counters but it did not work.
So I installed the VS on the server and debugged and noticed that I have been calling a non awaitable Linq query inside a async action which is not correctly conducted and accordingly there is a bug in application threading , and when there is many site visitors this bug shows up and IIS throws this exception and stops working.
after checking ShuggyCoUk answer and other answers if you are still getting the error, My advice is to consider checking related async functions.
精彩评论