我在装有IIS10的Windows Server上运行ASP.NET应用程序(.NET Framework4.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);
}
但在这些示例中,我必须定义应用程序在其下运行的网站(据我所知)。
现在,当我不想在源代码中固定它(因为它可能会改变)时,我想知道如何才能知道应用程序运行在哪个应用程序池名称下?
发布于 2018-10-19 21:15:12
分别通过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];
https://stackoverflow.com/questions/52850447
复制相似问题