首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能获得正在运行应用程序的应用程序池(而不需要事先知道网站)?

有没有可能获得正在运行应用程序的应用程序池(而不需要事先知道网站)?
EN

Stack Overflow用户
提问于 2018-10-17 16:29:07
回答 1查看 134关注 0票数 3

我在装有IIS10的Windows Server上运行ASP.NET应用程序(.NET Framework4.6)。

我读过一些例子,在这些例子中,你可以获得特定站点的应用程序池。

代码语言:javascript
复制
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);
}

但在这些示例中,我必须定义应用程序在其下运行的网站(据我所知)。

现在,当我不想在源代码中固定它(因为它可能会改变)时,我想知道如何才能知道应用程序运行在哪个应用程序池名称下?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-19 21:15:12

分别通过HostingEnvironment.SiteNameHostingEnvironment.ApplicationVirtualPath获取当前站点名称和路径。

使用它们,可以像这样从服务器管理器获取所需的信息

代码语言:javascript
复制
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];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52850447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档