首页 > 代码库 > C#获取IIS所有站点及虚拟目录和应用程序(包含名称及详细信息)
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; }
C#获取IIS所有站点及虚拟目录和应用程序(包含名称及详细信息)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。