如何使用C#从IIS获取当前的Worker Request列表?

我正在编写RESTful Web服务状态页面的代码。 我想知道是否有将IIS的当前请求转移到C#中。

我正在使用IIS 7.0,我想要的信息是在

IIS>工作程序> ASP.NET v4.0 >请求

在此处输入图像描述

您可以使用WorkerProcess类型的GetRequests方法。 此类型位于Microsoft.Web.Administration程序集中,可以使用此非官方nuget程序包或通过添加对此dll %WinDir%\System32\InetSrv\Microsoft.Web.Administration.dll的引用来安装

例子:

 using (ServerManager manager = new ServerManager()) { while (true) { var requests = manager.ApplicationPools .Where(pool => pool.Name == "FooPool") .SelectMany(pool => pool.WorkerProcesses) .SelectMany(wp => wp.GetRequests(10)); Console.WriteLine(requests.Count()); Thread.Sleep(100); } }