C# 擷取IIS網站及虛擬目錄資訊

來源:互聯網
上載者:User

標籤:blog   ring   ice   pre   turn   ogr   nbsp   system   acl   

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# 擷取IIS網站及虛擬目錄資訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.