• C#获取IIS所有站点及虚拟目录和应用程序(包含名称及详细信息)


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.DirectoryServices;
    using System.Diagnostics;
    
    namespace WindowsFormsApplication13
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            void ShowEntry(DirectoryEntry entry)
            {
                foreach (DirectoryEntry childEntry in entry.Children)
                {
                    if (childEntry.SchemaClassName == "IIsWebServer")
                    {
                        Debug.Print(childEntry.SchemaClassName + "" + childEntry.Properties["ServerComment"].Value.ToString());
                        Debug.Print("*********************Start*************************");
                        foreach (var name in childEntry.Properties.PropertyNames)
                        {
                            Debug.Print(name + ":" + childEntry.Properties[name.ToString()].Value);
                        }
                        Debug.Print("*********************End*************************");
                    }
                    else if (childEntry.SchemaClassName == "IIsWebVirtualDir")
                    {
                        Debug.Print(childEntry.SchemaClassName + "" + childEntry.Name);
                        Debug.Print("*********************Start*************************");
                        foreach (var name in childEntry.Properties.PropertyNames)
                        {
                            Debug.Print(name + ":" + childEntry.Properties[name.ToString()].Value);
                        }
                        Debug.Print("*********************End*************************");
                    }
                    else
                    {
                        //Debug.Print(childEntry.SchemaClassName);
                    }
                    ShowEntry(childEntry);
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                ShowEntry(new DirectoryEntry("IIS://localhost/w3svc"));
            }
        }
    }

     获取IIS树型目录:

    public class SiteInfo
            {
                public string Name { get; set; }
                public string Path { get; set; }
                public bool IsApp { get; set; }
                public List<SiteInfo> Children { get; set; }
            }
    
            List<SiteInfo> getSiteList(DirectoryEntry entry)
            {
                var result = new List<SiteInfo>();
                foreach (DirectoryEntry childEntry in entry.Children)
                {
                    var sites = getSiteList(childEntry);
                    if (childEntry.SchemaClassName == "IIsWebServer")
                    {
                        var site = new SiteInfo();
                        site.Name = childEntry.Properties["ServerComment"].Value.ToString();
                        site.Path = sites[0].Path;
                        site.IsApp = true;
                        site.Children = new List<SiteInfo>();
                        foreach (var subSite in sites[0].Children)
                            site.Children.Add(subSite);
                        result.Add(site);
                    }
                    else if (childEntry.SchemaClassName == "IIsWebVirtualDir")
                    {
                        var site = new SiteInfo();
                        site.Name = childEntry.Name;
                        site.Path = childEntry.Properties["Path"].Value.ToString();
                        site.Children = sites;
                        if (childEntry.Properties.Contains("AppRoot")
                            && childEntry.Properties["AppRoot"].Value != null
                            && !string.IsNullOrEmpty(childEntry.Properties["AppRoot"].Value.ToString()))
                            site.IsApp = true;
                        result.Add(site);
                    }
                }
                return result;
            }
            public List<KeyValuePair<SiteInfo, string>> getFlatSiteList(List<SiteInfo> sites, string parentPadding = "")
            {
                var result = new List<KeyValuePair<SiteInfo, string>>();
                foreach (var site in sites)
                {
                    var currentPrefix = parentPadding == string.Empty ? string.Empty : "" + parentPadding;
                    result.Add(new KeyValuePair<SiteInfo, string>(site, currentPrefix + site.Name));
                    result.AddRange(getFlatSiteList(site.Children, parentPadding + "--"));
                }
                return result;
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                var siteList = getSiteList(new DirectoryEntry("IIS://localhost/w3svc"));
                var flatSiteList = getFlatSiteList(siteList);
                foreach (var list in flatSiteList)
                    Debug.Print(list.Value);
            }
  • 相关阅读:
    solr dataimport 数据导入源码分析(九)
    正确理解ThreadLocal
    solr dataimport 数据导入源码分析(六)
    solr dataimport 数据导入源码分析(七)
    solr dataimport 数据导入源码分析(八)
    solr dataimport 数据导入源码分析(一)
    solr dataimport 数据导入源码分析(五)
    OpenGL光照、键盘
    OpenGL着色
    OpenGL纹理映射
  • 原文地址:https://www.cnblogs.com/nanfei/p/6296825.html
Copyright © 2020-2023  润新知