如何在C#中列出和创建网站和虚拟Web目录中的所有IIS网站,文件夹

时间:2009-03-23 20:36:12

标签: c# iis

我正在尝试首先列出所有IIS网站以及每个网站中的文件夹/虚拟Web目录(在树状视图中)。然后,我想允许用户选择上述任何节点并在那里创建一个新的虚拟Web目录。如果我知道我打算使用的路径但是我无法获得网站中的文件夹/虚拟网页目录列表(我可以获得网站列表),我可以创建一个虚拟网络目录。

2 个答案:

答案 0 :(得分:3)

使用System.DirectoryServices从IIS获取网站。您可以在以下网址找到类似的讨论

http://channel9.msdn.com/forums/TechOff/78084-Extracting-list-of-web-sites-from-IIS-manager/

答案 1 :(得分:0)

好笑,我只是需要为IIS 7.5做这个,我用我想要的主要属性创建了一个类IisSiteApplication

using Microsoft.Web.Administration;


 public class IisSiteApplicationList : List<IisSiteApplication>
    {
        public IisSiteApplicationList()
        {
            ServerManager iisManager = new ServerManager();
            SiteCollection sites = iisManager.Sites;
            foreach (Site iisSite in sites)
            {
                foreach (Application iisApp in iisSite.Applications)
                {
                    IisSiteApplication app = new IisSiteApplication
                        {
                            SiteId = iisSite.Id,
                            SiteName = iisSite.Name,
                             AppName = iisApp.ToString(),
                            ApplicationPoolName = iisApp.ApplicationPoolName,
                            Directories =
                                String.Join(";", iisApp.VirtualDirectories.Select(a =>   a.PhysicalPath).ToArray())
                        };
                    Add(app);
                }
            }
        }
    }