获取站点ID:
using Microsoft.Web.Administration;
var sites = new ServerManager().Sites["Mis"];
string siteID = sites.Id.ToString();
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;}} }
转载自:https://www.cnblogs.com/hnsongbiao/p/7435745.html