2014-09-04 8 views
7

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

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

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

+0

что-то вроде этого? http://stackoverflow.com/questions/1400464/enumerating-application-pools-in-iis – fuchs777

ответ

5

Может это может помочь: имя_пула_приложений недвижимости

Пространство имен: Microsoft.Web.Administration Ассамблея: Microsoft.Web.Administration (в Microsoft.Web.Administration.dll)

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

+3

И на всякий случай 'Install-Package Microsoft.Web.Administration' –

12

Модифицированный версия @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; 
    } 
+1

IMHO, лучше ответьте, чем ответ Razon – Kiquenet

+0

Объедините ссылку с код, и это должен быть ответ. – Rexxo

+0

Внимание! Этот код может вызывать исключение COM, если параметр «Загрузить профиль пользователя» в AppPool на вашем IIS не установлен на «True», –

7

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^