Я пытаюсь прочитать несколько счетчиков производительности из работающего приложения .NET 4, из другого приложения .NET 4. [12 49] Некоторые счетчики, такие как Процесс \% загруженности процессора
и Процесс \ байты личного пользования
, работают нормально. Однако, как только я пытаюсь прочитать счетчик производительности из одной из категорий .NET, например .NET CLR Memory \ # Gen 0 Collections
, я получаю следующее исключение:
Instance 'MyApplication' does not exist in the specified Category
Когда я вызываю :
new PerformanceCounterCategory(".NET CLR Memory").GetInstanceNames()
Он возвращает очень небольшой набор экземпляров, а MyApplication действительно нет в списке. Однако, когда я смотрю на свои счетчики производительности в perfmon
, список экземпляров, которые я вижу там для той же категории / счетчика, намного длиннее и ДОЛЖЕН включает MyApplication.
Кто-нибудь знает, почему счетчики .NET не видны моему приложению?
(Примечание: отслеживаемое приложение запущено приложением мониторинга, поэтому они определенно запускаются в той же учетной записи. Я также попытался запустить свое приложение мониторинга в качестве администратора и добавить моя учетная запись в группе пользователей системного монитора, безрезультатно.)