我正在具有IIS 10的Windows Server上运行ASP.NET应用程序(.NET Framework 4.6)。
我已经阅读了一些示例,其中提供了特定站点的应用程序池。
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);
}
但是在这些示例中,我必须定义运行该应用程序的网站(据我了解)。
现在,当我不想在源代码中固定它(因为它可以更改)时,我想知道如何在应用程序池名称下运行该应用程序?
答案 0 :(得分:2)
分别通过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];