好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#实现获取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>

     /// <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#程序设计有所帮助。

dy("nrwz");

查看更多关于C#实现获取IIS站点及虚拟目录信息的方法的详细内容...

  阅读:91次