发现使用C#

发现使用C#

问题描述:

我试图找到多少每个应用程序池的内存正通过C#中使用多个应用程序池的内存使用量发现使用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); 
} 

这给我一个我正在运行的所有应用程序池的列表,但是ApplicationPool对象的属性都没有给我任何有关它的使用情况或实时数据的信息。

我完全得到了棒的错误结局?

如何找到我想要的信息?

我一直无法找到一个直接的答案,但道歉,如果这已被回答之前。

干杯

+0

我认为WMI可能是解决方案。 https://msdn.microsoft.com/zh-cn/library/ms525265(v=vs.90).aspx或性能计数器https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0a6c9f07 -a70c-4c3d-b93d-5dfef593c744.mspx?mfr = true – Steve

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

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

Is there a way to retrieve a C# app's current memory usage?

+0

正是我所需要的,我现在需要做的就是弄清楚每个w3wp进程之间的区别。干杯 –

+0

如果应用程序池正在使用ApplicationIdentity,则进程的用户名应该是ApplicationPool名称 – Liam