【问题标题】:How to know the Site is in which ApplicationPools如何知道站点在哪个ApplicationPools中
【发布时间】:2015-04-01 01:05:43
【问题描述】:

我使用下面的代码来获取应用程序池和站点,但是我怎么知道站点在哪个应用程序池中

        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


【解决方案1】:

使用ApplicationPoolName可以知道应用程序分配到的应用程序池的名称 见Here

要在您的网页上显示应用程序池名称,您只需使用以下 sn-p 代码即可。

 <% 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 也可用于以编程方式列出、获取和设置应​​用程序池。

【讨论】:

  • 贴一些代码,怎么做。仅链接的答案不是好的答案!
  • @mybirthname 好的,谢谢您的建议,我将进行编辑。
  • 谢谢,Application.ApplicationPoolName 很有帮助。
  • @Sasayaku 不客气,如果您认为这是您的答案,请接受。
【解决方案2】:

站点指定应用程序的默认应用程序池。如果默认值不合适,可以将每个应用程序更改为使用另一个应用程序池。使用以下内容获取站点和应用程序的应用程序池:

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);
    }
}

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2010-12-17
    相关资源
    最近更新 更多