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