网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > ASP.NET > Web虚拟目录:Asp.net实现IIS控制管理  

Web虚拟目录:Asp.net实现IIS控制管理

2004-10-06  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  (一)CreateWebDir.cs 使用示例
     string sServer = "localhost";
     string VirtualDir = "Bug2004";          \\虚拟目录
     string PathDir  = @"D:\myWebDirTest\Bug2000"  \\物理目录
  
    IISManager iisMg = new IISManager(sServer);
    iisMg.Connect();
   
    if (iisMg.Exists(VirtualDir]))
    {
    Console.Write(VirtualDir+ " is exist!");
    }
    else
    {
    myINI.IniWriteValue("WebDir","WebDirExist","false");
  
    iisMg.get_AnonymousUser();
    string[] anonymousUser = new string[2];
    anonymousUser[0] = iisMg.AnonymousUserName ;
    anonymousUser[1] = iisMg.AnonymousUserPass ;
  
    VirtualDirectory newVirDir = new VirtualDirectory(VirtualDir,PathDir,anonymousUser);
    if (iisMg.Create(newVirDir))
     Console.Write(VirtualDir+ " 创建成功!");
    else
     Console.Write(VirtualDir+ " 创建不成功!");
    } 网管u家u.bitscn@com
  
    iisMg.Close();
  
  (二)CreateWebDir.cs 是转贴过来的,我作了些完善和修改
  ///***********************************************************
  ///**************        IIS控制管理类        **************
  ///************** 转贴自: 飞刀 http://www.aspcn.com *************
  ///***********************************************************
  using System;
  using System.Data;
  using System.DirectoryServices;
  using System.Collections;
  
  namespace CreateWebDir
  {
  /// <summary>
  /// IISManager 的摘要说明。
  /// </summary>
  public class IISManager
  {
   //定义需要使用的
   private string _server,_website,_AnonymousUserPass,_AnonymousUserName;
   private VirtualDirectories _virdirs;
   protected System.DirectoryServices.DirectoryEntry rootfolder;
   private bool _batchflag;
   public IISManager()
   {
    //默认情况下使用localhost,即访问本地机

网管联盟bitsCN@com


    _server = "localhost";
    _website = "1";
    _batchflag = false;
   }
   public IISManager(string strServer)
   {
    _server = strServer;
    _website = "1";
    _batchflag = false;
   }
   /// <summary>
   /// 定义公共属性
   /// </summary>
  
   public void get_AnonymousUser()
   {
    _AnonymousUserPass="IUSR_DEVE-SERVER";
    _AnonymousUserName="IUSR_DEVE-SERVER";
    VirtualDirectory vDir;
    try
    {
    Hashtable myList = (Hashtable)_virdirs;
    IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
    while ( myEnumerator.MoveNext() )
    {
     vDir = (VirtualDirectory)myEnumerator.Value;
     if (vDir.AnonymousUserName!="" && vDir.AnonymousUserPass != "")
     {
     _AnonymousUserName=vDir.AnonymousUserName;
     _AnonymousUserPass=vDir.AnonymousUserPass;
     break;
     }

网管网www.bitscn.com


    }
    }
    catch
    {
    _AnonymousUserPass="IUSR_DEVE-SERVER";
    _AnonymousUserName="IUSR_DEVE-SERVER";
    }
   }
   public string AnonymousUserName
   {
    get{ return _AnonymousUserName;}
    set{ _AnonymousUserName = value;}
   }
   public string AnonymousUserPass
   {
    get{ return _AnonymousUserPass;}
    set{ _AnonymousUserPass = value;}
   }
   //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;}
网管u家u.bitscn@com

   }
   ///<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 bool Create(VirtualDirectory newdir)
   {
    string strPath = "IIS://" + _server + "/W3SVC/" + _website + "/ROOT/" + newdir.Name;
    if(!_virdirs.Contains(newdir.Name) || _batchflag )
    {
    try
    {
     //加入到ROOT的Children集合中去

网管网www_bitscn_com


     DirectoryEntry newVirDir = rootfolder.Children.Add(newdir.Name,"IIsWebVirtualDir");
     newVirDir.Invoke("AppCreate",true);
     newVirDir.CommitChanges();
     rootfolder.CommitChanges();
     //然后更新数据
     UpdateDirInfo(newVirDir,newdir);
     return true;
    }
    catch(Exception ee)
    {
     //throw new Exception(ee.ToString());
     return false;
    }
    }
    else
    {
    return true;
    //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");

网管联盟bitsCN@com


    }
    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.");
    }
   }
网管u家u.bitsCN.com

   //批量更新
   public void UpdateBatch()
   {
    BatchUpdate(_virdirs);
   }
   //重载一个:-)
   public void UpdateBatch(VirtualDirectories vds)
   {
    BatchUpdate(vds);
   }
   
   ///<summary>
   ///私有方法
   ///</summary>
  
   public void Close()
   {
    _virdirs.Clear();
    _virdirs = null;
    rootfolder.Dispose();
  
   }
   //连接服务器
   private void ConnectToServer()
   {
    string strPath = "IIS://" + _server + "/W3SVC/" + _website +"/ROOT";
    try
    {
    this.rootfolder = new DirectoryEntry(strPath);
    _virdirs = GetVirDirs(th

TAGs控制   管理   实现   虚拟   目录   _website   /strVirdir    
 上一篇:ASP.NET创建Web服务之声明XML Web服务   下一篇:在 ASP.NET 中执行 URL 重写
相关文章列表
Web虚拟目录:Asp.net实现IIS控制管理 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.ASP.NET中实时图表的实现
2.asp.net 实现购物车详细代码
3.asp.net 2.0实现语言和主题的切换
4.用asp.net实现根据IP获取当地天气预报
5.为ASP.NET封装的SQL数据库访问类
6.ASP.NET购物车代码程序
7.在asp.net中为Web用户控件添加属性
8.Web Service中保持ASP.net的状态
9.ASP.NET入门随想
10.面试ASP.NET程序员的笔试题和机试题
最新推荐文章:
1.ASP.NET定义主题和外观
2.如何让Visual Studio和web标准联姻
3.关于Asp.net中导出Excel表格的问题
4.如何封装JS和CSS文件为服务器端控件
5.ASP.NET页面打印技术的总结
6.如何处理ASP.NET 2.0配置文件
7.ASP.NET十分有用的页面间传值方法
8.ASP.NET中实现Flash与.NET的紧密集成
9.面试ASP.NET程序员的笔试题和机试题
10.ASP.NET中实时图表的实现
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的