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

  • 相关阅读:
    C# 移除string[] 数组中的指定元素
    传入一个字符串参数 获取这个字符串内所有字符的 不同排列情况
    js 更新本地当前时间
    js 通过单选框 展开和收缩 下拉框
    js 做加法
    js 验证 输入的值是否为整数
    用一个button控件调用fileupload控件的获取路径功能
    删除表中的多余的记录
    实验楼 实现课程模块
    微博回调接口(django)
  • 原文地址:https://www.cnblogs.com/zhtbk/p/5443612.html
Copyright © 2011-2022 走看看