从ApplicationHost.config获取IIS工作进程

问题描述 投票:0回答:1

我需要在不使用appcmd或ServerManager的情况下获取IIS工作进程。如果使用PerformanceCounter,则只能获取进程ID,而不能获取应用程序池名称。我检查了ServerManager后面的代码,似乎它正在加载applicationHost.Config形式,但在其中找不到WorkerProcess部分。我可以从applicationhost获取应用程序池列表,但是我也需要processId。是否有任何Windows API可以同时获取应用程序池和进程ID?

iis application-pool worker-process
1个回答
0
投票

获取工作流程信息和获取应用程序池配置将取决于不同的事物。就像lex所说的那样,IIS不会在applicationhost.config中存储活动的工作进程信息。

如果要阅读某些应用程序池配置,建议使用Microsoft.Web.administration

如果您既需要获取应用程序池和PID,则可以在管理员中使用命令行“ APPCMD LIST WPS”,即使您不愿意同时使用Appcmd和服务器管理器,这也是最简单的方法。

如果Appcmd和服务器管理器根本不被接受,则可以使用Process.GetProcessesByName()来获取工作进程集合。然后通过使用WMI获取其用户名来获取其应用程序池。由于工作进程的用户名将为IIS Apppool \ Apppool名称

由于用户可能会更改,所以应用程序池将更改为本地托管帐户。不建议接受此替代方法。

© www.soinside.com 2019 - 2024. All rights reserved.