我使用下面的代码获取ApplicationPools和网站,但我怎么知道网站在哪个应用程序池中
var serverManager = ServerManager.OpenRemote("127.0.0.1");
var appPools = serverManager.ApplicationPools;
var site= serverManager.Sites;
Console.WriteLine("Sites:");
foreach (var st in site)
Console.WriteLine(st.Name);
Console.WriteLine( );
Console.WriteLine("Pools:");
foreach (var ap in appPools)
Console.WriteLine(ap.Name);
Console.Read();
答案 0 :(得分:1)
使用ApplicationPoolName
,您可以知道应用程序所分配到的应用程序池的名称
见Here
要在您的网页上显示应用池名称,您只需使用以下代码段即可。
<% Request.ServerVariables("APP_POOL_ID") %>
我可以获得PoolName
以下代码段:
string appPoolName = HttpContext.Current.Request.ServerVariables["APP_POOL_ID"];
if (String.IsNullOrEmpty(appPoolName))
appPoolName = Environment.GetEnvironmentVariable("APP_POOL_ID", EnvironmentVariableTarget.Process);
并获取IIS服务器变量,请查看this。
This对于以编程方式列出,获取和设置应用程序池也很有用。
答案 1 :(得分:0)
站点指定应用程序的默认应用程序池。如果默认值不合适,可以将每个应用程序更改为使用另一个应用程序池。使用以下内容获取站点和应用程序的应用程序池:
var sites = new ServerManager().Sites;
foreach (var site in sites)
{
Console.WriteLine(site.ApplicationDefaults.ApplicationPoolName);
foreach (var application in site.Applications)
{
Console.WriteLine(application.ApplicationPoolName);
}
}