Tôi đang cố đọc một số bộ đếm hiệu suất từ ứng dụng .NET 4 đang chạy, từ ứng dụng .NET 4 khác.Đọc hiệu suất truy cập từ C#: Ví dụ không tồn tại trong danh mục được chỉ định
Một số bộ đếm, chẳng hạn như Process\% Processor Time
và Process\Private Bytes
hoạt động tốt. Tuy nhiên, ngay sau khi tôi cố gắng đọc một hiệu suất truy cập từ một trong các loại .NET, chẳng hạn như .NET CLR Memory\# Gen 0 Collections
, tôi nhận được ngoại lệ sau đây:
Instance 'MyApplication' does not exist in the specified Category
Khi tôi gọi:
new PerformanceCounterCategory(".NET CLR Memory").GetInstanceNames()
Nó trả về một tập hợp rất nhỏ các trường hợp và MyApplication thực sự không có trong danh sách. Tuy nhiên, khi tôi nhìn vào quầy hiệu suất của tôi trong perfmon
, danh sách các trường hợp tôi thấy có cùng danh mục/bộ đếm dài hơn nhiều và DOES bao gồm MyApplication.
Có ai biết tại sao bộ đếm .NET không hiển thị với ứng dụng của tôi không?
(Lưu ý: Ứng dụng được giám sát là bắt đầu bởi ứng dụng giám sát, vì vậy chúng chắc chắn chạy trong cùng một tài khoản người dùng. Tôi cũng đã thử bắt đầu ứng dụng giám sát của mình với tư cách Quản trị viên và thêm tài khoản của tôi vào nhóm Người dùng Màn hình hiệu suất. không có hiệu lực.)
http://stackoverflow.com/questions/5832709/exception-instance-name-of-instance-does-not-exist-in-the-specified-category –
Không phải vấn đề; Chỉ có 1 cá thể, có và không có cấu hình XML nó không hoạt động, và trong mọi trường hợp, các bộ đếm hoạt động đúng trong perfmon. – rix0rrr
Tôi chỉ nhận được '" ConsoleApplication2 "' khi tôi chạy tệp thực thi được tạo thực tế. Tôi không nhận được nó khi tôi chạy chương trình từ Visual Studio. Thay vào đó, tôi nhận 'ConsoleApplication2.vshost'. –