日期:2014-05-18  浏览次数:20441 次

用c# 如何操作 iis 根目录
用c#   如何操作   iis   根目录,查询及修改

------解决方案--------------------
///***********************************************************
///************** IIS控制管理类 **************
///***********************************************************

using System;
using System.DirectoryServices;
using System.Collections;
namespace IISManagement
{
/// <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的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;