Можно ли получить пул приложений, в котором запущено приложение (не зная заранее сайт)? - PullRequest
0 голосов
/ 17 октября 2018

Я запускаю приложение ASP.NET (.NET Framework 4.6) на Windows Server с IIS 10.

Я прочитал несколько примеров, где вы получаете пул приложений для определенных сайтов.

ServerManager manager = new ServerManager();
Site defaultSite = manager.Sites["Default Web Site"];

foreach (Application app in defaultSite.Applications)
{
    Console.WriteLine(
        "{0} is assigned to the '{1}' application pool.", 
        app.Path, app.ApplicationPoolName);
}

Но в этих примерах я должен определить веб-сайт (насколько я понимаю), на котором запущено приложение.

Теперь, когда я не хочу фиксировать это висходный код (как он может измениться), мне интересно, как я могу получить, под каким именем пула приложений работает приложение?

1 Ответ

0 голосов
/ 19 октября 2018

Получить текущее имя сайта и путь через HostingEnvironment.SiteName и HostingEnvironment.ApplicationVirtualPath соответственно.

С их помощью получить необходимую информацию от менеджера сервераможно сделать как

using Microsoft.Web.Administration;
using System.Web.Hosting;

//...

var manager = new ServerManager();

var siteName = HostingEnvironment.SiteName;

var site = manager.Sites[siteName];

var applicationPath = HostingEnvironment.ApplicationVirtualPath;

var application = site.Applications[applicationPath];

Console.WriteLine(
    "{0} is assigned to the '{1}' application pool.", 
    application.Path, application.ApplicationPoolName);

var appPoolName = application.ApplicationPoolName;

var applicationPool = manager.ApplicationPools[appPoolName];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...