日期:2011-12-26  浏览次数:20492 次

///***********************************************************

///************** 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