刀兄写的IIS管理类(C#)

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

/// ************** IIS控制管理类 1.0 Beta **************

/// ************** Author: 飞刀 **************

/// ************** http://www.aspcn.com **************

/// ************** [email protected] **************

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

using System;

using System.Data;

using System.DirectoryServices;

using System.Collections;

namespace Aspcn.Management

{

///

1<summary>
2
3///  IISManager 的摘要说明。 
4
5///  </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 ;

}

///

1<summary>
2
3///  定义公共属性 
4
5///  </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 ;}

}

///

1<summary>
2
3///  定义公共方法 
4
5///</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;

}

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);

<SPAN sty

Published At
Categories with Web编程
Tagged with
comments powered by Disqus