Я хочу получить производительность Счетчики из процесса W3WP (IIS 10.0). Я, в состоянии прочитать процесс и производительность Thread счетчиков, но не любые другие, как % Время, проведенное в GCПолучение счетчиков производительности из W3wp в C#
Так что я написал небольшую консоль, показывая мне все категории, которые могут иметь ассоциации с w3wp и я вижу только процесс и Thread.
Я также запускал консоль как администратор и как пользователь, с которым работает пул приложений. Но все тот же результат.
Что мне не хватает?
var cats = PerformanceCounterCategory.GetCategories();
foreach (var cat in cats)
{
var names = cat.GetInstanceNames();
if (names.Any(i => i.ToLowerInvariant().Contains("w3wp")))
{
Console.WriteLine(cat.CategoryName);
}
}
private static string GetProcessInstanceName(int pid)
{
PerformanceCounterCategory cat = new PerformanceCounterCategory("Process");
string[] instances = cat.GetInstanceNames();
foreach (string instance in instances)
{
using (PerformanceCounter cnt = new PerformanceCounter("Process",
"ID Process", instance, true))
{
int val = (int)cnt.RawValue;
if (val == pid)
{
return instance;
}
}
}
}