从c#代码获取IIS中的请求数

我希望获得IIS当前在C#中以编程方式排队的请求数。

我也希望得到CPU的使用率……

谁能指出我正确的方向?

您将需要查看系统性能计数器中的读取信息,具体取决于您要查找的内容,您可以使用多个计数器。

这篇MSDN文章显示了所有IIS6性能计数器,你应该能够找到类似的IIS7。

对于CPU使用情况,有几种方法可以解决这个问题。 取决于您是否需要总CPU使用率或每个进程的CPU使用率。

另外,这里有一个关于从过程计数器读取的教程 。

在IIS7上你可以使用Microsoft.Web.Administration程序集,WorkerProcess对象有GetRequests方法,看一下WorkerProcess.GetRequests方法

而对于CPU使用情况,您可以使用ApplicationPool类的Microsoft.Web.Administration.ApplicationPoolCpu属性,尽管我不确定是否有关于当前CPU使用情况的信息,请查看ApplicationPool.Cpu

Microsoft.Web.Administration很棒:)

查看System.Diagnostics命名空间,尤其是以PerformanceCounterXXX开头的类