zoukankan      html  css  js  c++  java
  • 获取iis网站信息

    1.获取网站的url地址


    var ht = GetWebPathAndWebName("");
    var rootUrl = ht["webaddr"].ToString().Remove(ht["webaddr"].ToString().Length - 1);

    private Hashtable GetWebPathAndWebName(string webName="RMS")
    {
    Hashtable ht = new Hashtable();
    Regex regex = new Regex(webName);
    string tmpStr;
    DirectoryEntry rootIISEntry = new DirectoryEntry(constIISRoot);
    foreach (DirectoryEntry entry in rootIISEntry.Children)
    {
    if (entry.SchemaClassName == "IIsWebServer")
    {
    if (entry.Properties["ServerComment"].Value != null)
    {
    tmpStr = entry.Properties["ServerComment"].Value.ToString();

    if (regex.Match(tmpStr).Success)
    {
    ht.Add("webaddr", entry.Properties["ServerBindings"].Value.ToString());
    break;
    }
    }
    }
    }
    return ht;
    }

    2.获取网站的Path

    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;
    }
    }

  • 相关阅读:
    函数
    registry搭建及镜像管理-harbor
    用户输入和while 循环
    dockerfile
    字典,set
    if 语句
    alpine操作
    循环:列表,元组
    列表
    docker跨主机通信-overlay
  • 原文地址:https://www.cnblogs.com/zhtbk/p/5443612.html
Copyright © 2011-2022 走看看