利用.NET平台实现IIS7编程控制
2010-04-13董宁
董 宁
武汉软件工程职业学院,湖北 武汉 430205
0 引言
目前,Windows Service 2008和Windows 7平台提供的IIS已经发展到了7.0版本,IIS已经成为一个完整的可配置Web应用程序服务平台,并且能够与操作系统紧密结合。
在管理本地的少数几台Web服务器时,利用IIS Manager,或者通过手动管理方法,我们就能够很好的完成IIS的管理任务。但是随着网站规模的扩大,网站服务器数量的增多,我们迫切需要一种更好的方法来管理服务器。
实际上,在IIS7中所有可以通过IIS Manger和通过直接编辑配置文件完成的管理工作都可以用编程方法实现。
1 Microsoft.Web.Administration
Microsoft.Web.Administration API是专门为IIS7开发的新功能,为IIS7编程管理提供了强类型的.NET类的集合。在.NET项目中引用Microsoft.Web.Administration命名空间后,将可以使用其中包含的一系列预定义类,利用这些类,可以使得常用IIS对象的管理工作既简单又直接。
Microsoft.Web.Administration命名空间中根级别的类是ServerManager,这个类是其他所有类的基类。ServerManager有5个主要派生类:Site、Application、VirtualDirectory、ApplicationPool和WorkerProcess。这些类可以用于网站的创建与配置、启动和停止网站、查看当前运行的工作进程、访问与管理远程服务器和编辑网站配置文件。
一个Application属于一个Site,而一个VirtualDirectory属于一个Application。这些类型的对象都不能独立存在,它们必须是父对象的组成部分。利用WorkerProcess类,我们可以实时观察当前处于运行状态的配置数据,还可以访问当前运行的工作进程,甚至可以观察当前处于运行状态的请求。另外ServerManager类为我们提供了一系列方法,利用这些方法,我们可以直接管理配置文件。
2 利用.NET平台编程控制IIS7
在.NET平台项目中添加对Microsoft.Web.Administration.dll的引用后就可以使用其提供的类编程控制IIS7了。
在IIS7中创建一个网站可以使用如下代码实现:
网站创建完成后,我们还可以为网站添加一个应用程序池,并设置应用程序池的框架版本:
除了网站的创建与配置,我们还可以通过WorkerProcess类获取当前网站的运行状态:
如果需要编程配置的服务器并不是本地服务器而是远程服务器的话,只需要改变ServerManager实例的创建方式即可:
ServerManager SM = ServerManager.OpenRemote("192.168.1.1");
有些时候网站建立之后还需要修改网站配置文件,在ServerManager中同样提供了修改网站配置文件的方法:
通过上述方法,我们可以用编程的方式完全控制与配置IIS7,这对管理大量网站和网站服务器提供了一种更加高效的方式。
3 结论
IIS7的架构具有很好的可配置性和可定制性,支持跨UNC共享进行部署,还支持跨网站部署。IIS7将配置分配到最合理的文件中保存,因此提供了很好的可控制性,并且降低了委托的管理难度,同时还提供了很好的灵活性。从配置的角度出发,理解IIS7中的配置文件、location标记、配置节、锁、信息架构扩展和配置路径等内容,可以帮助我们更好的管理IIS7环境,同时为IIS7编程配置打下良好基础。
以编程的方式管理与配置IIS7,为网站服务器的管理提供了更多的方式,如利用Asp.net我们可以远程管理网站,利用.NET应用程序我们可以将写好的网站创建方式与配置一次性部署到大量的网站服务器上等。
通过理解IIS7的配置结构以及编程API,我们能够更有效的管理和扩展IIS7服务器。
[1]刘潇潇.基于.NET技术在线考试系统的设计与实现.信息与电脑,2010,4.
[2]朱晓辉,王杰华,石振国,陈苏蓉.NET下基于PowerDesigner和CodeSmith的软件自动化开发技术.计算机科学,2010,7.