【问题标题】:Identify the w3wp System.Diagnostics.Process for a given application pool识别给定应用程序池的 w3wp System.Diagnostics.Process
【发布时间】:2011-01-10 18:28:30
【问题描述】:

我的服务器上运行的网站很少。

我在应用程序中有一个“诊断”页面,显示当前进程的内存量(非常有用)。

现在此应用已“链接”到另一个应用,我希望我的诊断页面能够显示另一个 w3wp 进程的大量内存。

为了获取内存量,我使用了一个简单的代码:

var process = Process.GetProcessesByName("w3wp");
string memory = this.ToMemoryString(process.WorkingSet64);

我如何识别我的第二个 w3wp 进程,知道它的应用程序池?

我找到了相应的帖子,但没有合适的答案: Reliable way to see process-specific perf statistics on an IIS6 app pool

谢谢

【问题讨论】:

    标签: iis application-pool system.diagnostics w3wp


    【解决方案1】:

    您可以使用WMI 来识别给定w3wp.exe 进程属于哪个应用程序池:

    var scope = new ManagementScope(@"\\YOURSERVER\root\cimv2");
    var query = new SelectQuery("SELECT * FROM Win32_Process where Name = 'w3wp.exe'");
    using (var searcher = new ManagementObjectSearcher(scope, query))
    {
        foreach (ManagementObject process in searcher.Get())
        {
            var commandLine = process["CommandLine"].ToString();
            var pid = process["ProcessId"].ToString();
            // This will print the command line which will look something like that:
            // c:\windows\system32\inetsrv\w3wp.exe -a \\.\pipe\iisipm49f1522c-f73a-4375-9236-0d63fb4ecfce -t 20 -ap "NAME_OF_THE_APP_POOL"
            Console.WriteLine("{0} - {1}", pid, commandLine);
        }
    }
    

    【讨论】:

      【解决方案2】:

      您还可以使用 IIS ServerManager 组件获取 PID;方式,如果您需要在代码中访问它,而无需重定向和解析控制台输出;

      public static int GetIISProcessID(string appPoolName)
      {
          Microsoft.Web.Administration.ServerManager serverManager = new   
              Microsoft.Web.Administration.ServerManager();
          foreach (WorkerProcess workerProcess in serverManager.WorkerProcesses)
          {
              if (workerProcess.AppPoolName.Equals(appPoolName))
                  return workerProcess.ProcessId;
          }
      
          return 0;
      }
      

      【讨论】:

      • 就是这样!
      猜你喜欢
      • 2012-03-28
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多