如何在IIS7中获取与应用程序池关联的应用程序

时间:2011-09-30 07:22:42

标签: c# iis-7

我有一个虚拟目录名称。对于这个虚拟目录,我必须找出相关的应用程序池。一旦我获得应用程序池,我必须找到此应用程序池中的所有虚拟目录。 我正在使用此代码来查找与virtual关联的应用程序池 目录

string AppPoolName = string.Empty;
            ServerManager manager = new ServerManager();
            foreach (Site site in manager.Sites)
            {
                foreach (Application app in site.Applications)
                {
                    string path = app.Path;
                    path = path.Replace("/", " ");
                    path = path.Trim();

                    if (path.ToLower() == VDName.ToLower())
                    {
                        AppPoolName = app.ApplicationPoolName;
                        break;
                    }
                }
            }

4 个答案:

答案 0 :(得分:5)

using (var serverManager = new ServerManager())
{
    var apps = (from site in serverManager.Sites
                from app in site.Applications
                where app.ApplicationPoolName.Equals("DefaultAppPool")
                select app);
}

答案 1 :(得分:2)

我认为我们必须重新运行应用程序池的功能才能获取相关应用程序的名称。

 ServerManager manager = new ServerManager();
        foreach (Site site in manager.Sites)
        {
            foreach (Application app in site.Applications)
            {

                if (app.ApplicationPoolName.ToString() == AppPoolName)
                {
                     string appname = app.Path;
                }
            }
        }

答案 2 :(得分:1)

这个链接可能会为您提供开发代码的提示

Restarting (Recycling) an Application Pool

答案 3 :(得分:1)

或新线没有循环方法:

 Environment.GetEnvironmentVariable("APP_POOL_ID", EnvironmentVariableTarget.Process);