发现使用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对象的属性都没有给我任何有关它的使用情况或实时数据的信息。
我完全得到了棒的错误结局?
如何找到我想要的信息?
我一直无法找到一个直接的答案,但道歉,如果这已被回答之前。
干杯
您可以使用system.diagnostics来获取工作集。
可以修改链接中的示例以获取所有w3wp.exe进程的工作集。
Is there a way to retrieve a C# app's current memory usage?。
正是我所需要的,我现在需要做的就是弄清楚每个w3wp进程之间的区别。干杯 –
如果应用程序池正在使用ApplicationIdentity,则进程的用户名应该是ApplicationPool名称 – Liam
我认为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