Запрошенный счетчик производительности не является пользовательским счетчиком, он должен быть инициализирован как ReadOnly - PullRequest
37 голосов
/ 12 января 2010

Я получаю повторяющиеся ошибки о свойстве ReadOnly на счетчиках производительности при каждой попытке отладки приложения службы Windows .NET. Это приложение отлично работает на Windows Vista x86 или Windows 2003 x86. Оно просто перестало работать на моей новой 64-битной машине.

Я запустил соответствующие вызовы InstallUtil в 64-битной и 32-битной командной строке VCVARS.bat в режиме администратора. Я получаю без ошибок при настройке категории и каждого счетчика перфораций . Но, независимо от того, установил ли я perf ctrs только для чтения или нет, я получаю следующее:

Запрошенный счетчик производительности не пользовательский счетчик, он должен быть инициализируется как ReadOnly.

UPDATE

Я переустановил машину с 32-битной версией Windows 7, и, как ни странно, я все еще получаю эту ошибку. Единственное, что изменилось, это переход с Windows Vista Business на Windows 7 Professional. Это звонит в какие-нибудь колокола?

Ответы [ 4 ]

51 голосов
/ 17 января 2010

Это связано с тем, что счетчик производительности (или категория) не существует , но с ужасным сообщением об ошибке.

Посмотрите в perfmon счетчик, он должен отсутствовать на соответствующих машинах.

Я нахожу, что это иногда случается со счетчиками производительности .Net (не знаю почему), но с использованием lodctr 1 возвращает их обратно Если вы укажете, к какому счетчику вы пытаетесь добраться, мы можем оказать вам дополнительную помощь.

  1. Обратите внимание, что приведенный пример предназначен для .Net 1.1, соответственно отрегулируйте для разных фреймворков.
8 голосов
/ 25 января 2013

Я столкнулся с вариантом этой проблемы, хотя я мог видеть вкладку счетчика производительности .net в отражателе, на самом деле в нем не было счетчиков.

Мне пришлось их заново добавить

lodctr /R
cd C:\Windows\Inf\.NETFramework
lodctr corperfmonsymbols.ini
2 голосов
/ 09 мая 2018

Я потратил несколько часов на решение этой проблемы, следуя всем инструкциям, найденным в Интернете, поэтому я решил поделиться своим решением, возможно, оно сэкономит время для других. Наконец я получил подсказку по одной из ссылок в комментариях:

Вам нужно будет запустить Visual Studio от имени администратора

Мое приложение использует MassTrasit с RabbitMQ, и при отправке сообщений в очередь не удается. По-видимому, он добавляет некоторые счетчики перфокартов под капот, и он не работал без прав администратора с этой очень описательной ошибкой. Забавно, но вам придется запускать его как администратор только в первый раз (это то, что меня обмануло).

0 голосов
/ 05 января 2019

Я получал эту вводящую в заблуждение ошибку на своем компьютере для развертывания, я ловил ее, используя механизм FirstChanceException, IIS неоднократно останавливал связанный пул приложений после возникновения этой ошибки, и я получал ошибку «Служба недоступна» при обращении к сайту,

Я много дней пытался остановить счетчики или найти / добавить связанные счетчики, но это не сработало.

Таким образом, я установил VS на сервере, отладил и заметил, что Я вызывал неприемлемый запрос Linq внутри асинхронного действия, которое не выполняется правильно , и, соответственно, есть ошибка в потоке приложения, и когда появляется много посетителей сайта, эта ошибка обнаруживается, и IIS выдает это исключение и перестает работать.

после проверки ответа ShuggyCoUk и других ответов, если вы все еще получаете ошибку, мой совет должен рассмотреть проверку связанных асинхронных функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...