• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文出处:传送门

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;
        }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
白话C#发布时间:2022-07-13
下一篇:
C# 后台首次加载时才执行发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap