C#列表所有IIS站点以及相关站点属性

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-01 07:17 点击:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using System.DirectoryServices;
using System.Reflection;
using System.Text.RegularExpressions;

int TotalServerCount=0; 
  
   DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC");
   //TotalServerCount=rootfolder.Children.SchemaFilter.Count;
  
   foreach (DirectoryEntry child in rootfolder.Children)
   {         
    if (child.SchemaClassName == "IIsWebServer")
    {     
     TotalServerCount+=1;       
    }
   }
   //循环获取所有站点详细属性写入数组中
   string [] arrayServerID = new string[TotalServerCount];//站点标识符
   string [] arrayServerIP = new string[TotalServerCount];//站点主机头
   string [] arrayServerPort = new string[TotalServerCount];//站点主机头
   string [] arrayServerHeader = new string[TotalServerCount];//站点主机头
   string [] arrayServerPath = new string[TotalServerCount];//站点主机头
   string [] arrayServerComment = new string[TotalServerCount];//站点主机头

   string [] arrayServerBinds = new string[TotalServerCount];//站点主机头

  
   string currentServerBindings;//绑定主机头IP端口字符串
   char[] a=":".ToCharArray();
   string [] currentBingdings =new string[2];

   int i=0;
   foreach (DirectoryEntry child in rootfolder.Children)
   {         
    if (child.SchemaClassName == "IIsWebServer")
    {      
     arrayServerID.SetValue(child.Name.ToString(),i);
     arrayServerComment.SetValue(child.Properties["ServerComment"].Value.ToString(),i);

     currentServerBindings=child.Properties["ServerBindings"].Value.ToString();
    
     currentBingdings=currentServerBindings.Split(a);

     arrayServerIP.SetValue(currentBingdings[0],i);
     arrayServerPort.SetValue(currentBingdings[1],i);
     arrayServerHeader.SetValue(currentBingdings[2],i);

    
     foreach (DirectoryEntry rootChild in child.Children)
     {
      if((rootChild.SchemaClassName == "IIsWebVirtualDir")&&(rootChild.Name.ToString()=="root"))
      {
       if(rootChild.Properties["Path"].Value==null)
       {
        arrayServerPath.SetValue("",i);
       }
       else
       {
        arrayServerPath.SetValue(rootChild.Properties["Path"].Value.ToString(),i);
       }
      }
     }
   
     i+=1;
    }
   }


   //写入到datagrid中去
   //循环从数组中读取数据
   for(i=0;i<TotalServerCount;i++)
   {
   
    listView1.Items.Add((i+1).ToString());  
    listView1.Items[i].SubItems.Add(arrayServerID.GetValue(i).ToString());
    listView1.Items[i].SubItems.Add(arrayServ

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 用C#制作屏幕捕获程序
    • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
    • 遍历ArrayList易犯错误
    • C#对XML操作:一个处理XML文件的类(1)
    • .NET简谈反射(动态调用)
    • 使用C#编写LED样式时钟控件
    • DataList嵌套问题 如何删除内层子DataList的记录
    • 怎样用C#实现完整文档打印功能
    • .NET简谈自定义事务资源管理器
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1