在网上找了下面这个类,是用来设置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.");
}
}
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.");
}
}
全部COPY上来,系统提示帖子太长,不好意思^_^