繁体   English   中英

如何通过代码获取应用程序池名称(C#,ASP.net)

[英]How to get Application Pool name through code (C#, ASP.net)

我想通过我的应用程序回收应用程序池。

以前我将应用程序池名称存储在我的数据库中并使用它来回收。 但过去我们将应用程序从一个应用程序池移动到另一个应用程序池,有时我们忘记更新数据库中的应用程序池名称。

所以我想通过应用程序获取应用程序池名称并将其用于回收。

修改版@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;
    }

在许多情况下,仅从环境变量中读取应用程序池的名称就足够了:

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

愿这可以提供帮助:ApplicationPoolName属性

命名空间: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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM