///***********************************************************   
  ///************** IIS控制管理类 1.0 Beta **************   
  ///************** Author: 飞刀 **************   
  ///************** http://www.aspcn.com **************   
  ///************** feidao@aspcn.com **************   
  ///***********************************************************   
using System;   
using System.Data;   
using System.DirectoryServices;   
using System.Collections;   
namespace Aspcn.Management   
{   
     /// <summary>   
     /// IISManager 的摘要说明。   
     /// </summary>   
     public class IISManager   
     {   
         //定义需要使用的   
          private string _server,_website;   
          private VirtualDirectories _virdirs;   
          protected System.DirectoryServices.DirectoryEntry rootfolder;   
          private bool _batchflag;   
         public IISManager()   
         {   
              //默认情况下使用localhost,即访问本地机   
              _server = "localhost";   
              _website = "1";   
              _batchflag = false;   
         }   
         public IISManager(string strServer)   
         {   
              _server = strServer;   
              _website = "1";   
              _batchflag = false;   
         }   
         /// <summary>   
         /// 定义公共属性   
         /// </summary>        
          //Server属性定义访问机器的名字,可以是IP与计算名   
         public string Server   
         {   
              get{ return _server;}   
              set{ _server = value;}   
         }   
          //WebSite属性定义,为一数字,为方便,使用string   
         //一般来说第一台主机为1,第二台主机为2,依次类推   
         public string WebSite   
         {   
              get{ return _website; }   
              set{ _website = value; }   
         }        
         //虚拟目录的名字   
         public VirtualDirectories VirDirs   
         {   
              get{ return _virdirs; }   
              set{ _virdirs = value;}   
         }   
          ///<summary>   
         ///定义公共方法   
          ///</summary>        
         //连接服务器   
         public void Connect()   
         {   
              ConnectToServer();   
         }   
         //为方便重载   
         public void Connect(string strServer)   
         {   
              _server = strServer;   
              ConnectToServer();   
         }   
         //为方便重载   
         public void Connect(string strServer,string strWebSite)   
         {   
              _server = strServer;   
              _website = strWebSite;   
              ConnectToServer();   
         }   
         //判断是否存这个虚拟目录   
         public bool Exists(string strVirdir)   
         {   
              return _virdirs.Contains(strVirdir);   
         }   
         //添加一个虚拟目录   
         public void Create(VirtualDirectory newdir)   
         {   
              string strPath = "IIS://" + _server + "/W3SVC/" + _website + "/ROOT/" + newdir.Name;   
              if(!_virdirs.Contains(newdir.Name) || _batchflag )   
              {   
                   try   
                   {   
                       //加入到ROOT的Child