Le compteur de performances demandé n'est pas un compteur personnalisé, il doit être initialisé en lecture seule

je reçois des erreurs répétées à propos de la propriété ReadOnly sur les compteurs de performances chaque fois que j'essaie de déboguer une application de service Windows. Cette application fonctionne très bien sur windows vista x86, ou windows 2003 x86. Il a juste arrêté de travailler sur ma nouvelle machine 64bit dev.

j'ai lancé les invocations InstallUtil pertinentes sur les VCVARS 64bit et 32bit en ligne de commande.bat, en mode administrateur. J'obtiens pas d'erreurs configurer la catégorie et chaque compteur de perf. Mais, indépendamment de que je définisse le perf ctrs comme readonly ou non, j'obtiens ceci:

le compteur de performances demandé est pas un compteur personnalisé, il doit être initialisé en lecture seule.

UPDATE

j'ai réinstallé la machine avec une version 32 bits de Windows 7, et bizarrement j'ai toujours cette erreur. La seule chose qui a changé est de passer de Windows Vista Business à Windows 7 Professional. Est-ce à sonner les cloches?

36
demandé sur Andrew Matthews 2010-01-12 07:35:22

3 réponses

ceci est dû à la performance counter (ou catégorie) pas, mais avec un message d'erreur horrible.

jetez un coup d'oeil dans perfmon pour le compteur, il devrait être absent sur les machines pertinentes.

j'ai trouver ce qui se passe à la .Net perf compteurs parfois (aucune idée pourquoi) mais utilisation de lodctr1 amène de nouveau. Si vous indiquez le compteur de perf que vous essayez d'obtenir à nous pourrions être en mesure de vous donner plus aider.

  1. notez que la ligne d'exemple est pour .Net 1.1, ajuster pour différents cadres en conséquence.
50
répondu ShuggyCoUk 2010-01-17 17:52:26

j'ai rencontré une variante de ce numéro, alors que je pouvais voir l'onglet .net performance counter dans reflector il n'y avait en fait pas de compteurs à l'intérieur.

j'ai dû rajouter

lodctr /R
cd C:\Windows\Inf\.NETFramework
lodctr corperfmonsymbols.ini
8
répondu Daniel Little 2013-01-25 01:26:34

j'ai passé quelques bonnes heures sur cette question, en suivant toutes les instructions trouvées sur le web, donc j'ai décidé de partager ma solution, peut-être que cela fera gagner du temps aux autres. Enfin j'ai eu un indice sous l'un des liens dans les commentaires:

vous devez exécuter Visual Studio en tant qu'administrateur

mon application utilise MassTrasit avec RabbitMQ, et il a échoué sur l'envoi de messages à la file d'attente. Apparemment il ajoute quelques compteurs de perf sous le capot et il il a échoué sans privilèges Admin avec cette erreur très descriptive. Chose drôle, vous aurez besoin de l'exécuter en tant qu'administrateur seulement la première fois (c'est ce qui m'a trompé).

1
répondu Mateusz Moska 2018-05-09 14:35:51