C#实现获取IIS站点及虚拟目录信息的方法
本文实例讲述了C#实现获取IIS站点及虚拟目录信息的方法。分享给大家供大家参考。具体如下:
usingSystem; usingSystem.DirectoryServices; usingSystem.Collections.Generic; usingSystem.Text; namespaceConsoleApplication1 { classProgram { staticvoidMain(string[]args) { DirectoryEntryrootEntry=newDirectoryEntry("IIS://localhost/w3svc"); intsiteID=1; foreach(DirectoryEntryentryinrootEntry.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(); DirectoryEntryvirEntry=newDirectoryEntry(entry.Path+"/ROOT"); foreach(DirectoryEntryentryVirtualinvirEntry.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(); } } intID=Convert.ToInt32(entry.Name); if(ID>=siteID) { siteID=ID+1; } } } } } publicclassIISWorker { ///<summary> ///得到网站的物理路径 ///</summary> ///<paramname="rootEntry">网站节点</param> ///<returns></returns> publicstaticstringGetWebsitePhysicalPath(DirectoryEntryrootEntry) { stringphysicalPath=""; foreach(DirectoryEntrychildEntryinrootEntry.Children) { if((childEntry.SchemaClassName=="IIsWebVirtualDir")&&(childEntry.Name.ToLower()=="root")) { if(childEntry.Properties["Path"].Value!=null) { physicalPath=childEntry.Properties["Path"].Value.ToString(); } else { physicalPath=""; } } } returnphysicalPath; } } }
希望本文所述对大家的C#程序设计有所帮助。