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

2019-12-26 13:26:35于丽

易采站长站为您分析C#实现获取IIS站点及虚拟目录信息的方法,可实现获取IIS站点信息及物理路径等功能,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C#实现获取IIS站点及虚拟目录信息的方法。。具体如下:

 

  1. using System;  using System.DirectoryServices; 
  2. using System.Collections.Generic;  using System.Text; 
  3. namespace ConsoleApplication1  { 
  4. class Program  { 
  5. static void Main(string[] args)  { 
  6. DirectoryEntry rootEntry = new DirectoryEntry("IIS://localhost/w3svc");  int siteID = 1; 
  7. foreach (DirectoryEntry entry in rootEntry.Children)  { 
  8. if (entry.SchemaClassName.Equals("IIsWebServer", StringComparison.OrdinalIgnoreCase))  { 
  9. Console.WriteLine("Name: {0}", entry.Name);  Console.WriteLine("Path: {0}", IISWorker.GetWebsitePhysicalPath(entry)); 
  10. Console.WriteLine("ServerBindings: {0}", entry.Properties["ServerBindings"].Value);  Console.WriteLine(); 
  11. DirectoryEntry virEntry = new DirectoryEntry(entry.Path + "/ROOT");  foreach (DirectoryEntry entryVirtual in virEntry.Children) 
  12. {  if (entryVirtual.SchemaClassName.Equals("IIsWebVirtualDir", StringComparison.OrdinalIgnoreCase)) 
  13. {  Console.WriteLine("SchemaClassName: {0}", entryVirtual.SchemaClassName); 
  14. Console.WriteLine("Name: {0}", entryVirtual.Name);  Console.WriteLine("Path: {0}", entryVirtual.Properties["Path"].Value); 
  15. Console.WriteLine();  } 
  16. }  int ID = Convert.ToInt32(entry.Name); 
  17. if (ID >= siteID)  { 
  18. siteID = ID + 1;  } 
  19. }  } 
  20. }  } 
  21. public class IISWorker  { 
  22. /// <summary>  /// 得到网站的物理路径 
  23. /// </summary>  /// <param name="rootEntry">网站节点</param>