Estoy tratando de leer una cantidad de contadores de rendimiento de una aplicación .NET 4 en ejecución, desde otra aplicación .NET 4.Contador de rendimiento de lectura de C#: La instancia no existe en la categoría especificada
Algunos contadores, como Process\% Processor Time
y Process\Private Bytes
funcionan bien. Sin embargo, tan pronto como trato de leer un contador de rendimiento de una de las categorías de .NET, como .NET CLR Memory\# Gen 0 Collections
, me sale el siguiente excepción:
Instance 'MyApplication' does not exist in the specified Category
Cuando llamo:
new PerformanceCounterCategory(".NET CLR Memory").GetInstanceNames()
Devuelve un conjunto muy pequeño de instancias, y MyApplication de hecho no está en la lista. Sin embargo, cuando miro mis contadores de rendimiento en perfmon
, la lista de instancias que veo allí para la misma categoría/contador es mucho más larga y SÍ INCLUYE MyApplication.
¿Alguien sabe por qué los contadores .NET no son visibles para mi aplicación?
(Nota: La aplicación supervisada es comenzado por la aplicación de monitoreo, por lo que definitivamente se ejecutan en la misma cuenta de usuario También probé el inicio de mi aplicación de monitorización como administrador y la adición de mi cuenta al grupo de usuarios del Monitor de rendimiento, a. sin efecto.)
http://stackoverflow.com/questions/5832709/exception-instance-name-of-instance-does-not-exist-in-the-specified-category –
No es el problema; Solo 1 instancia, con y sin la configuración XML, no funciona y, en cualquier caso, los contadores funcionan correctamente en perfmon. – rix0rrr
Solo obtengo '" ConsoleApplication2 "' cuando ejecuto el ejecutable generado. No lo entiendo cuando ejecuto el programa desde Visual Studio. En su lugar, obtengo 'ConsoleApplication2.vshost'. –