C# 使用c查找多个应用程序池的内存使用情况#

C# 使用c查找多个应用程序池的内存使用情况#,c#,iis,application-pool,iis-10,C#,Iis,Application Pool,Iis 10,我试图找出每个应用程序池中有多少内存是通过c使用的# 这就是我目前的情况: List<ApplicationPool> pools = new List<ApplicationPool>(); List<WorkerProcess> processes = new List<WorkerProcess>(); ServerManager serverManager = new ServerManager(); ApplicationPoolCol

我试图找出每个应用程序池中有多少内存是通过c使用的#

这就是我目前的情况:

List<ApplicationPool> pools = new List<ApplicationPool>();
List<WorkerProcess> processes = new List<WorkerProcess>();

ServerManager serverManager = new ServerManager();
ApplicationPoolCollection appPools = serverManager.ApplicationPools;

foreach (ApplicationPool pool in appPools)
{
    pools.Add(pool);
}
列表池=新列表();
列表进程=新列表();
ServerManager服务器管理器=新服务器管理器();
ApplicationPoolCollection appPools=serverManager.ApplicationPools;
foreach(应用程序池中的应用程序池)
{
池。添加(池);
}
这将为我提供一个已运行的所有应用程序池的列表,但ApplicationPool对象的任何属性都不会为我提供有关其使用情况或实时数据的任何信息

我是不是完全弄错了方向

我如何找到我想要的信息

我在任何地方都找不到一个直截了当的答案,但如果以前有人回答过,我表示歉意


干杯

您可以使用system.diagnostics获取工作集

可以修改链接中的示例以获取所有w3wp.exe进程的工作集


.

我认为WMI可能是解决方案。或者性能计数器正是我所需要的,我现在需要做的就是找出每个w3wp进程之间的区别。Cheer如果应用程序池正在使用ApplicationIdentity,则进程的用户名应为ApplicationPool名称