第一卷 深入剖析IIS 6.0(上)
關於IIS 6.0的故事一言難盡,如果你已經在IIS技術上有所投資,IIS 6.0無疑是一個動人的、非聽不可的話題。鑒於IIS 6.0和以前版本的差別實在太大了,隻用一篇文章很難做到麵麵俱到,所以本文首先探討IIS 6.0的安裝、體係結構以及由於體係結構方麵的差異帶 來的全新服務功能,下一篇文章接著介紹IIS 6.0的新特性--其中有些你可能還沒有聽說過,另外還有默認配置方麵的一些重要變化,這些變化可能會影響到你的遷移計劃。
一、安裝IIS 6.0
首先從最基本的說起吧。IIS 6.0包含在Windows Server 2003服務器的四種版本之中:數據中心版,企業版,標準版,Web版。另外,順便再回答一個最常見的IIS 6.0問題:IIS 6.0不能在Windows XP、2000或NT上運行。
安裝好Windows 2003之後,馬上就可以看到Windows 2003/IIS 6.0的與眾不同之處,其中一個關鍵的變化是,除了Windows 2003 Web版之外,Windows 2003的其餘版本默認不再安裝IIS。按照微軟過去的理念,安裝操作係統的同時IIS也自動啟動,為許多Web應用提供服務,Windows 2003的做法可謂一大突破。在Windows 2003中,安裝IIS有三種途徑:利用"管理您的服務器"向導,利用控製麵板"添加或刪除程序"的"添加/刪除Windows組件"功能,或者執行無人值守安裝。
第一次啟動Windows 2003係統時,"管理您的服務器"向導自動啟動,如圖一所示。
圖一
選擇"添加或刪除"角色,在"配置服務器"向導中可以看到一係列可配置的服務器角色,其中就有"應用程序服務器(IIS,ASP.NET)"選項,如圖二,選中該選項之後點擊"下一步",向導提供了是否安裝ASP.NET和Microsoft FrontPage服務器擴展的選項。可以看到,微軟在這裏采用了一種新型的"安裝任何部件之前總是征求用戶意見"的IIS安裝策略,對於微軟來說,這是一個徹底的轉變,證明微軟確實在認真對待安全問題。
圖二
使用控製麵板中的"添加/刪除Windows組件"功能還要靈活一些。在向導中選擇"應用程序服務器",再點擊"詳細信息",向導顯示出一係列組件的清單,其中就有"Internet信息服務(IIS)"選項,還有一些選項是以前的"添加/刪除Windows組件"向導沒有提供的,表一概括比較了IIS 6.0和IIS 5.0 的主要組件。如果從這裏安裝IIS 6.0,最後得到的Web服務器可能隻支持靜態內容(除非在安裝期間選中了某些擴展組件)。選中Internet信息服務選項,再點擊"詳細信息",可以看到IIS 6.0的子組件,如圖三所示。
圖三
表一:IIS 6.0和IIS 5.0組件比較
IIS 6.0
IIS 5.0
應用程序服務器
Internet信息服務
應用程序服務器控製台
公用文件
ASP.NET
文檔
啟用網絡COM+訪問
文件傳輸協議(FTP)服務
啟用網絡DTC訪問
FrontPage 2000服務器擴展
Internet信息服務
Internet信息服務管理單元
後台智能傳送服務(BITS)服務器擴展
Internet服務管理器(HTML)
BITS管理控製台管理單元
NNTP
BITS服務器擴展ISAPI
SMTP
公用文件
萬維網服務
文件傳輸協議(FTP)服務
FrontPage 2002服務器擴展
Internet信息服務管理器
Internet打印
NNTP服務
SMTP服務
萬維網服務
Active Server Pages
Internet數據連接器
遠程管理(HTML)
遠程桌麵Web連接
在服務器端的包含文件
WebDAV發布
萬維網服務
消息隊列
Active Directory集成
公用
下層客戶端支持
MSMQ HTTP支持
路由支持
觸發器
也許你已經注意到了表一列出的某些新增組件選項,但你注意到IIS 6.0少了什麼嗎?IIS 6.0中消失不見的最主要的一個項目是文檔。在IIS 6.0中,所有文檔都以幫助文件的形式發布,不再有IISHelp虛擬目錄。在IIS 5.0中,如果從本地訪問服務器,默認Web網站自動打開IIS的文檔,但在IIS 6.0中,如果打開"http://localhost",隻能看到一個聲明網站正在構建之中的頁麵。
另外,在IIS 5.0的IISHelp虛擬目錄中有一些錯誤處理頁麵,這些錯誤處理頁麵以ASP的方式實現。如果你要用到定製的(或者修改過的)幫助文件、錯誤處理頁麵,在IIS 6.0網站上必須自己創建該目錄。
進一步分析IIS 6.0的子組件清單,可以發現:原來在IIS 5.0和IIS 4.0中默認安裝的Internet服務管理器(ISM)已經不見了。但是,如果你點擊"萬維網服務"(IIS 6.0的子組件之一,但圖三沒有顯示出來),再點擊"詳細信息",可以發現IIS 6.0的萬維網服務還有子組件,如圖四所示,其中包括原來的Internet服務器管理器,不過現在已經改名為"遠程管理(HTML)";還有Windows 2003和XP版本的終端服務高級客戶端(TSAC)--現在它叫做"遠程桌麵Web連接"。現在,我們不僅可以方便地添加或刪除這兩個子組件,對其他子組件也一樣,包括:ASP,Internet數據連接器,在服務器端的包含文件,WebDAV發布,當然還有萬維網服務。
圖四
安裝IIS 6.0的最後一種方式是無人值守安裝。和以前一樣,這仍舊是唯一一種能夠將工具和默認Web網站安裝到其他驅動器(而不是係統驅動器)的安裝方式。Windows 2003無人值守安裝方式大體上仍和Win 2K一樣,都是用Sysocmgr和一個應答文件實施安裝。當然,新的特性需要新的參數、選項,有關這方麵的詳細說明,可以在Windows 2003 Release Candidate 2 (RC2)找到,地址是:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windowsnetserver/proddocs/datacenter/gs_installingiis.asp。
如果將IIS 5.0或IIS 4.0服務器升級到Windows 2003,IIS 6.0不會被設置成自動啟動。也就是說,如果采用升級的方式安裝,IIS 6.0默認是禁用的,除非遇到下列情況之一:
⑴ 以前的IIS服務器上已經安裝了IIS Lockdown工具。
⑵ 存在注冊子鍵HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\RetainW3SVCStatus,且它包含一個任意的注冊鍵。例如,你可以創建一個名為EnableIIS6的鍵,設定它的值為DWORD類型的1。
⑶ 在無人值守的升級安裝中,應答文件的[InternetServer]部分存在DisableWebServiceOnUpgrade = True/False條目。
二、支持服務
自IIS 6.0發布以來,它的某些新特性一直是人們關注和議論的焦點,成為眾人矚目的明星,但另一些Internet支持服務雖然不是經常有人說起,卻同樣值得關注,其中之一就是POP3服務和POP3服務Web管理器。我們無從得知微軟為何不在"應用程序服務器"組件清單中列出POP3服務,但是繼SMTP服務之後(SMTP服務隨同POP3服務一起安裝),管理員們盼望POP3服務已經很久了,他們一直在期盼著用一個簡單的POP3服務來替代龐大的Microsoft Exchange Server。
統一描述、發現和集成協議(Universal Description, Discovery, and Integration,即UDDI)服務是Windows 2003提供的又一種新的功能,它也與IIS有關,但默認不安裝(注意,Windows 2003 Web版不能安裝UDDI)。UDDI是一種產業標準(即不是微軟的發明),能夠通過廣告發布IIS服務器提供的Web服務--這裏"廣告"一詞的含義與日常生活中的廣告不同,它是指一種讓客戶程序(通常是Web瀏覽器)獲知Web服務(通常是ASP.NET應用)各種細節的方式。UDDI仍在發展之中,但一些企業已經在內部采用UDDI,以便開發者將自己的代碼發布給其他協作開發的人。有關UDDI的更多知識,可以在下列網站找到:http://www.uddi-china.org/(中文),http://www.uddi.org(英文),http://www.uddicentral.com(英文)。