【问题标题】:How can I list IIS working processes programmatically?如何以编程方式列出 IIS 工作进程?
【发布时间】:2016-02-26 11:11:13
【问题描述】:

我尝试按照here 的建议使用 WorkerProcess 类,但收到“System.Management.ManagementException: Invalid class”错误消息。

        var scope = new ManagementScope("//./root/CIMV2");
        var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT * FROM WorkerProcess"));

还有其他想法吗?

【问题讨论】:

    标签: c# .net iis windows-7 wmi


    【解决方案1】:

    如果这适用于 IIS 7+,那么您可以轻松地使用 ServerManager,您可以在此处找到一些示例:http://blogs.msdn.com/b/carlosag/archive/2006/04/17/microsoftwebadministration.aspx

    对于 WorkerProcesses,您可以这样做:

    using(ServerManager iisManager = new ServerManager()) {
      foreach(WorkerProcess w3wp in iisManager.WorkerProcesses) {
        Console.WriteLine("W3WP ({0})", w3wp.ProcessId);
    
        foreach (Request request in w3wp.GetRequests(0)) {
            Console.WriteLine("{0} - {1},{2},{3}",
                        request.Url,
                        request.ClientIPAddr,
                        request.TimeElapsed,
                        request.TimeInState);
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多