如何通过编程获取IIS 7中站点列表和虚拟目录?

30

有人知道如何以编程方式获取IIS 7中的站点列表和虚拟目录吗?


这个问题还存在吗?如果不是,请将以下其中一个标记为答案。 - ΩmegaMan
2个回答

70

看看这篇文章-在Microsoft.Web.Administration命名空间中似乎有一个全新的管理API:

链接

这是来自博客文章的快速图形概述:

alt text
(来源:carlosag.net)

这是关于Cool new IIS7 Features and APIs的"The Gu"的帖子

像这样的代码将在您的IIS7服务器中找到所有站点、它们的应用程序和虚拟目录:

    static void Main(string[] args)
    {
        ServerManager mgr = new ServerManager();

        foreach(Site s in mgr.Sites)
        {
            Console.WriteLine("Site {0}", s.Name);

            foreach(Application app in s.Applications)
            {
                Console.WriteLine("\tApplication: {0}", app.Path);

                foreach(VirtualDirectory virtDir in app.VirtualDirectories)
                {
                    Console.WriteLine("\t\tVirtual Dir: {0}", virtDir.Path);
                }
            }
        }

        Console.ReadLine();
    }

20
感谢Marc的最佳方式是接受他出色的答案。 - Mitch Wheat
谢谢您提供的额外代码示例。正是我所需要的! - Jon Harbour

3
重要提示:使用Microsoft.Web.Administration程序集的代码必须在安装有IIS7的计算机上运行。
当我在我的Windows XP计算机上开发一个系统,将IIS7站点加载到网页中时,我发现了这个限制。API很棒,但我希望我能够使用它。 从Windows 2003服务器以编程方式控制IIS 7服务器

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接