您的位置:首页 > 编程语言 > C#

C#中操作IIS 7.0

2009-03-25 14:02 127 查看
Microsoft自Windows Vista一起发布了IIS 7.0,这个已经是去年的话题了,随后,由.NET开发的Web程序便逐步从IIS 6.0过渡到IIS 7.0上了。IIS 7.0提供了很多比上一版本更多的新特性,包括完全模块化的组件、文本文件的配置功能、MMC图形模式管理工具等等,并且与.NET编程语言结合得更加紧密了,在新添加的Microsoft.Web.Administration名称空间中也增加了很多用于管理和访问IIS的对象,从而使得通过编程方式操作IIS更加简便。虽然在IIS 6.0时代我们也可以非常轻松地通过C#来管理服务器的IIS,但相对来说,现在需要编写的代码更少,所能完成的功能更强。以下是我在曾经做的一个项目中所写的一个类库中的一部分,主要实现了对IIS 7.0的操作,包括创建和删除站点、创建和删除虚拟目录、创建和删除应用程序池、添加站点默认文档、判断站点和虚拟目录是否存在、以及检查Bindings信息等。

对于IIS 7.0的介绍读者如果有兴趣的话可以看看下面的两篇文章,我觉得不错!

http://blog.joycode.com/scottgu/archive/2007/04/08/100650.aspx

http://msdn.microsoft.com/en-us/magazine/cc163453.aspx

不说废话了,赶紧贴代码吧。

首先是对站点的管理。我写了一个相对较为通用的私有方法,然后在对外的方法中给出了调用接口,包括了创建站点时应用程序池的创建和权限的管理。

VerifyWebSiteBindingsIsExist

public static bool VerifyWebSiteBindingsIsExist(string bindingInfo)

{

string temp = string.Empty;

using (ServerManager mgr = new ServerManager())

{

for (int i = 0; i < mgr.Sites.Count; i++)

{

foreach (Microsoft.Web.Administration.Binding b in mgr.Sites[i].Bindings)

{

temp = b.BindingInformation;

if (temp.IndexOf('*') < 0)

{

temp = "*" + temp;

}

if (temp.Equals(bindingInfo))

{

return true;

}

}

}

}

return false;

}
以上代码均在Windows Vista SP1和Windows Server 2008上测试通过,使用时需要在工程中引用Microsoft.Web.Administration类库,该类库为IIS 7.0自带的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: