using System; using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ZQNB.Tool.Upgrade.Utilities { public class IISHelper { /// <summary> /// 获取指定站名的路径 /// todo 应该做成用户可以选择的 /// </summary> /// <returns></returns> public static string GetSitePath() { var rootEntry = new DirectoryEntry("IIS://localhost/w3svc"); 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);
var serverComment = entry.Properties["ServerComment"].Value.ToString(); Console.WriteLine("ServerComment: {0}", serverComment); if (serverComment == Config.SiteName) { return IISWorker.GetWebsitePhysicalPath(entry); } //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(); // } //} }
} return null; } } 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; } } }
|
请发表评论