在网上找了下面这个类,是用来设置IIS服务器的,但是不会使用,请教高手指点如何调用这个类里的一些方法? 查找虚拟目录是否存在 添加虚拟目录 删除虚拟目录 还有一些IIS服务器属性设置方面的,请举例示明,小弟感激不尽~~~~~~~~~~~~~~~在线等
using System; 
  using System.Data; 
  using System.DirectoryServices; 
  using System.Collections; 
  namespace Aspcn.Management 
  { 
  /// 
  /// IISManager 的摘要说明。 
  /// 
  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; 
  } 
  /// 
  /// 定义公共属性 
  /// 
   
  //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;} 
  } 
  /// 
  ///定义公共方法 
  /// 
   
  //连接服务器 
  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的Children集合中去 
   DirectoryEntry newVirDir = rootfolder.Children.Add(newdir.Name,"IIsWebVirtualDir"); 
   newVirDir.Invoke("AppCreate",true); 
   newVirDir.CommitChanges(); 
   rootfolder.CommitChanges(); 
   //然后更新数据 
   UpdateDirInfo(newVirDir,newdir); 
   } 
   catch(Exception ee) 
   { 
   throw new Exception(ee.ToString()); 
   } 
   } 
   else 
   { 
   throw new Exception("This virtual directory is already exist."); 
   } 
  } 
  //得到一个虚拟目录 
  public VirtualDirectory GetVirDir(string strVirdir) 
  { 
   VirtualDirectory tmp = null; 
   if(_virdirs.Contains(strVirdir)) 
   { 
   tmp = _virdirs.Find(strVirdir); 
   ((VirtualDirectory)_virdirs[strVirdir]).flag = 2; 
   } 
   else 
   { 
   throw new Exception("This virtual directory is not exists"); 
   } 
   return tmp; 
  } 
   
  //更新一个虚拟目录 
  public void Update(VirtualDirectory dir) 
  { 
   //判断需要更改的虚拟目录是否存在 
   if(_virdirs.Contains(dir.Name)) 
   { 
   DirectoryEntry ode = rootfolder.Children.Find(dir.Name,"IIsWebVirtualDir"); 
   UpdateDirInfo(ode,dir); 
   } 
   else 
   { 
   throw new Exception("This virtual directory is not exists."); 
   } 
  } 
    
  //删除一个虚拟目录 
  public void Delete(string strVirdir) 
  { 
   if(_virdirs.Contains(strVirdir)) 
   { 
   object[] paras = new object[2]; 
   paras[0] = "IIsWebVirtualDir"; //表示操作的是虚拟目录 
   paras[1] = strVirdir; 
   rootfolder.Invoke("Delete",paras); 
   rootfolder.CommitChanges(); 
   } 
   else 
   { 
   throw new Exception("Can't delete " + strVirdir + ",because it isn't exists."); 
   } 
  }

解决方案 »

  1.   

    把這個類放在你的WebSite站點App_Code目錄下,在你的cs源碼文件裡先using Aspcn.Management;然後New一個IISManager的實例即可。
      

  2.   

    或者把这个类编译好,把dll文件拷贝到你的bin目录下,然后在添加该引用就可以在你的项目中使用了
      

  3.   

    已经这样做过了,我要做的是一个C/S程序,编译也没问题,只是在引用其中的方法的时候会出现错误,提示方法没有经过实例化,我晕, 明明是NEW完之后才调用的方法~~~~~
      

  4.   

    啊,忘记告诉大家了,这只是这个类的一部分,并不完整........
    全部COPY上来,系统提示帖子太长,不好意思^_^