如何知道网站在哪个ApplicationPools中?

问题描述 投票:2回答:2

我使用下面的代码来获取应用池和站点,但我如何知道站点在哪个应用池中呢?

        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();
c# asp.net web-services iis application-pool
2个回答
2
投票

ApplicationPoolName 你可以知道应用程序被分配到的应用程序池的名称,参见

在您的网页上显示应用程序池的名称,您可以简单地使用下面的代码片段。

 <% 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服务器变量请看 这个.

这个 也可以用于编程地列出、获取和设置应用程序池。


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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.