Я пытаюсь прочитать несколько счетчиков производительности из запущенного приложения .NET 4, из другого приложения .NET 4.
Некоторые счетчики, такие как Process\% Processor Time
и Process\Private Bytes
, работают нормально.Однако, как только я пытаюсь прочитать счетчик производительности из одной из категорий .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невидимо для моего приложения?
(Примечание. Отслеживаемое приложение запущено приложением мониторинга, поэтому оно определенно запускается под той же учетной записью пользователя. Я также попытался запустить приложение мониторинга в качестве администратораи добавление моей учетной записи в группу «Пользователи системного монитора», но безрезультатно.)