Как получить имя пула приложений через код (C#, ASP.net)

Я хочу перезапустить пул приложений через мое приложение.

ранее я хранил имя пула приложений в своей базе данных и использовал его для рециркуляции. Но в прошлом мы перемещали приложения из одного пула приложений в другой и иногда забывали обновить имя пула приложений в базе данных.

поэтому я думаю получить имя пула приложений через приложение и использовать его для переработки.

3 ответов


может это может помочь: свойство ApplicationPoolName

Пространство Имен: Microsoft.Сеть.Администрация Сборка: Microsoft.Сеть.Администрации (в Microsoft.Сеть.Администрация.dll файлы)

http://msdn.microsoft.com/en-us/library/microsoft.web.administration.application.applicationpoolname(v=vs. 90).aspx


измененная версия @Razon ответ:)

public static string GetCurrentApplicationPoolName()
    {
        ServerManager manager = new ServerManager();
        string DefaultSiteName = System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName();
        Site defaultSite = manager.Sites[DefaultSiteName];
        string appVirtualPath = HttpRuntime.AppDomainAppVirtualPath;

        string appPoolName = string.Empty;
        foreach (Application app in defaultSite.Applications)
        {
            string appPath = app.Path;
            if (appPath == appVirtualPath)
            {
                appPoolName = app.ApplicationPoolName;
            }   
        }
        return appPoolName;
    }

во многих случаях может быть достаточно просто прочитать имя пула приложений из переменной среды:

var apppool = System.Environment.GetEnvironmentVariable(
                  "APP_POOL_ID", EnvironmentVariableTarget.Process);