易采站长站为您分析C#实现获取IIS站点及虚拟目录信息的方法,可实现获取IIS站点信息及物理路径等功能,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了C#实现获取IIS站点及虚拟目录信息的方法。。具体如下:
- using System; using System.DirectoryServices;
- using System.Collections.Generic; using System.Text;
- namespace ConsoleApplication1 {
- class Program {
- static void Main(string[] args) {
- DirectoryEntry rootEntry = new DirectoryEntry("IIS://localhost/w3svc"); int siteID = 1;
- foreach (DirectoryEntry entry in rootEntry.Children) {
- if (entry.SchemaClassName.Equals("IIsWebServer", StringComparison.OrdinalIgnoreCase)) {
- Console.WriteLine("Name: {0}", entry.Name); Console.WriteLine("Path: {0}", IISWorker.GetWebsitePhysicalPath(entry));
- Console.WriteLine("ServerBindings: {0}", entry.Properties["ServerBindings"].Value); Console.WriteLine();
- DirectoryEntry virEntry = new DirectoryEntry(entry.Path + "/ROOT"); foreach (DirectoryEntry entryVirtual in virEntry.Children)
- { if (entryVirtual.SchemaClassName.Equals("IIsWebVirtualDir", StringComparison.OrdinalIgnoreCase))
- { Console.WriteLine("SchemaClassName: {0}", entryVirtual.SchemaClassName);
- Console.WriteLine("Name: {0}", entryVirtual.Name); Console.WriteLine("Path: {0}", entryVirtual.Properties["Path"].Value);
- Console.WriteLine(); }
- } int ID = Convert.ToInt32(entry.Name);
- if (ID >= siteID) {
- siteID = ID + 1; }
- } }
- } }
- public class IISWorker {
- /// <summary> /// 得到网站的物理路径
- /// </summary> /// <param name="rootEntry">网站节点</param>










