董 寧
武漢軟件工程職業(yè)學院,湖北 武漢 430205
目前,Windows Service 2008和Windows 7平臺提供的IIS已經發(fā)展到了7.0版本,IIS已經成為一個完整的可配置Web應用程序服務平臺,并且能夠與操作系統(tǒng)緊密結合。
在管理本地的少數(shù)幾臺Web服務器時,利用IIS Manager,或者通過手動管理方法,我們就能夠很好的完成IIS的管理任務。但是隨著網(wǎng)站規(guī)模的擴大,網(wǎng)站服務器數(shù)量的增多,我們迫切需要一種更好的方法來管理服務器。
實際上,在IIS7中所有可以通過IIS Manger和通過直接編輯配置文件完成的管理工作都可以用編程方法實現(xiàn)。
Microsoft.Web.Administration API是專門為IIS7開發(fā)的新功能,為IIS7編程管理提供了強類型的.NET類的集合。在.NET項目中引用Microsoft.Web.Administration命名空間后,將可以使用其中包含的一系列預定義類,利用這些類,可以使得常用IIS對象的管理工作既簡單又直接。
Microsoft.Web.Administration命名空間中根級別的類是ServerManager,這個類是其他所有類的基類。ServerManager有5個主要派生類:Site、Application、VirtualDirectory、ApplicationPool和WorkerProcess。這些類可以用于網(wǎng)站的創(chuàng)建與配置、啟動和停止網(wǎng)站、查看當前運行的工作進程、訪問與管理遠程服務器和編輯網(wǎng)站配置文件。
一個Application屬于一個Site,而一個VirtualDirectory屬于一個Application。這些類型的對象都不能獨立存在,它們必須是父對象的組成部分。利用WorkerProcess類,我們可以實時觀察當前處于運行狀態(tài)的配置數(shù)據(jù),還可以訪問當前運行的工作進程,甚至可以觀察當前處于運行狀態(tài)的請求。另外ServerManager類為我們提供了一系列方法,利用這些方法,我們可以直接管理配置文件。
在.NET平臺項目中添加對Microsoft.Web.Administration.dll的引用后就可以使用其提供的類編程控制IIS7了。
在IIS7中創(chuàng)建一個網(wǎng)站可以使用如下代碼實現(xiàn):
網(wǎng)站創(chuàng)建完成后,我們還可以為網(wǎng)站添加一個應用程序池,并設置應用程序池的框架版本:
除了網(wǎng)站的創(chuàng)建與配置,我們還可以通過WorkerProcess類獲取當前網(wǎng)站的運行狀態(tài):
如果需要編程配置的服務器并不是本地服務器而是遠程服務器的話,只需要改變ServerManager實例的創(chuàng)建方式即可:
ServerManager SM = ServerManager.OpenRemote("192.168.1.1");
有些時候網(wǎng)站建立之后還需要修改網(wǎng)站配置文件,在ServerManager中同樣提供了修改網(wǎng)站配置文件的方法:
通過上述方法,我們可以用編程的方式完全控制與配置IIS7,這對管理大量網(wǎng)站和網(wǎng)站服務器提供了一種更加高效的方式。
IIS7的架構具有很好的可配置性和可定制性,支持跨UNC共享進行部署,還支持跨網(wǎng)站部署。IIS7將配置分配到最合理的文件中保存,因此提供了很好的可控制性,并且降低了委托的管理難度,同時還提供了很好的靈活性。從配置的角度出發(fā),理解IIS7中的配置文件、location標記、配置節(jié)、鎖、信息架構擴展和配置路徑等內容,可以幫助我們更好的管理IIS7環(huán)境,同時為IIS7編程配置打下良好基礎。
以編程的方式管理與配置IIS7,為網(wǎng)站服務器的管理提供了更多的方式,如利用Asp.net我們可以遠程管理網(wǎng)站,利用.NET應用程序我們可以將寫好的網(wǎng)站創(chuàng)建方式與配置一次性部署到大量的網(wǎng)站服務器上等。
通過理解IIS7的配置結構以及編程API,我們能夠更有效的管理和擴展IIS7服務器。
[1]劉瀟瀟.基于.NET技術在線考試系統(tǒng)的設計與實現(xiàn).信息與電腦,2010,4.
[2]朱曉輝,王杰華,石振國,陳蘇蓉.NET下基于PowerDesigner和CodeSmith的軟件自動化開發(fā)技術.計算機科學,2010,7.