다른 .NET 4 응용 프로그램에서 실행중인 .NET 4 응용 프로그램에서 많은 성능 카운터를 읽으려고합니다.C#에서 성능 카운터 읽기 : 인스턴스가 지정된 범주에 없습니다.
일부 카운터 (예 : Process\% Processor Time
및 Process\Private Bytes
)가 정상적으로 작동합니다. 내가 호출 할 때
Instance 'MyApplication' does not exist in the specified Category
: 그러나, 최대한 빨리 닷넷 범주 중 하나와 같은 .NET CLR Memory\# Gen 0 Collections
에서 성능 카운터를 읽으려고 시도로, 나는 다음과 같은 예외가
new PerformanceCounterCategory(".NET CLR Memory").GetInstanceNames()
그것은 반환 매우 작은 인스턴스 집합 및 MyApplication은 실제로 목록에 없습니다. 그러나 성능 카운터를 perfmon
에서 보면 동일한 범주/카운터에서 볼 수있는 인스턴스 목록이 훨씬 길며 MyApplication이 포함되어 있습니다.
.NET 카운터가 내 응용 프로그램에 표시되지 않는 이유를 알고있는 사람이 있습니까?
(참고 : 모니터링되는 응용 프로그램은 으로 모니터링 응용 프로그램에서 시작하므로 동일한 사용자 계정으로 실행됩니다.) 효과 없음)
http://stackoverflow.com/questions/5832709/exception-instance-name-of-instance-does-not-exist-in-the-specified-category –
문제는 없습니다. 1 인스턴스 만 XML 구성을 사용하거나 사용하지 않으면 작동하지 않으며 어떠한 경우에도 카운터는 perfmon에서 제대로 작동합니다. – rix0rrr
실제 생성 된 실행 파일을 실행할 때''ConsoleApplication2 "'만 얻습니다. Visual Studio에서 프로그램을 실행하면 이해가되지 않습니다. 대신'ConsoleApplication2.vshost'를 얻습니다. –