首页 > 编程 > C# > 正文

C#实现获取IIS站点及虚拟目录信息的方法

2020-01-24 01:26:24
字体:
来源:转载
供稿:网友

本文实例讲述了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>    /// <returns></returns>    public static string GetWebsitePhysicalPath(DirectoryEntry rootEntry)    {      string physicalPath = "";      foreach (DirectoryEntry childEntry in rootEntry.Children)      {        if ((childEntry.SchemaClassName == "IIsWebVirtualDir") && (childEntry.Name.ToLower() == "root"))        {          if (childEntry.Properties["Path"].Value != null)          {            physicalPath = childEntry.Properties["Path"].Value.ToString();          }          else          {            physicalPath = "";          }        }      }      return physicalPath;    }  }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表