
簡(jiǎn)介這是為Windows XP量身定制的IIS 6.0完整安裝包主要面向需要在舊版系統(tǒng)中搭建Web服務(wù)器、FTP站點(diǎn)或?qū)W習(xí)ASP動(dòng)態(tài)網(wǎng)站開發(fā)的用戶。由于XP默認(rèn)未集成完整IIS組件該壓縮包一次性補(bǔ)齊了安裝所需的DLL動(dòng)態(tài)庫(kù)、INF配置信息、EXE管理工具等文件省去手動(dòng)搜索和匹配版本的麻煩。資源以RAR壓縮包形式提供共包含273個(gè)文件壓縮后僅11.69MB其中CHM幫助文檔提供詳細(xì)配置指南in_、ex_、dll等文件覆蓋服務(wù)核心模塊另有少量示例頁(yè)面與腳本便于安裝后直接測(cè)試。目前已有282人學(xué)習(xí)下載適合本地建站、程序調(diào)試、教學(xué)演示等場(chǎng)景。借助這份完整資源用戶可快速獲得IIS 6.0運(yùn)行環(huán)境并參考附帶文檔完成Metabase管理、安全證書配置和FTP服務(wù)部署尤其適合初學(xué)者系統(tǒng)掌握服務(wù)器搭建流程。1. IIS 6.0 完整安裝包老運(yùn)維翻箱倒柜也要找的那個(gè)組件手頭有一臺(tái) Windows Server 2003 老服務(wù)器或一個(gè)必須跑在 IIS 6.0 上的遺留 OA你遲早會(huì)搜“iis6.0完整安裝包”。IIS 6.0 不像現(xiàn)代 IIS 那樣隨系統(tǒng)預(yù)裝、用“啟用功能”就能勾上它是以組件形式躺在 Windows Server 2003 系統(tǒng)盤里的一套服務(wù)。微軟從沒放出過官方獨(dú)立 exe 安裝包網(wǎng)上那些幾十 MB 的“完整安裝包”多半是個(gè)人從系統(tǒng)盤剝出來的半成品丟組件、帶腳本、被殺軟報(bào)毒是常事。這篇文章講清楚可靠安裝包怎么拿到手、怎么校驗(yàn)、怎么離線裝進(jìn)虛擬環(huán)境以及裝完頭 10 分鐘該做什么。適合被老系統(tǒng)綁定、必須回頭維護(hù) 2003 的運(yùn)維也適合要在測(cè)試環(huán)境復(fù)現(xiàn)老 IIS 行為的開發(fā)。2. IIS 6.0 能裝在哪先搞清完整安裝包的邊界2.1 系統(tǒng)版本門檻Server 2003 和 XP 的差別IIS 6.0 完整版的第一道門檻不是包本身而是宿主系統(tǒng)。在微軟產(chǎn)品線里IIS 6.0 完整版原生只能安裝在 Windows Server 2003含 R2上。Windows XP Professional 里那個(gè)也顯示為 IIS 6.0但它是削減版沒有 FTP、SMTP 和 NNTP 服務(wù)同一時(shí)刻只能跑一個(gè) Web 站點(diǎn)。老運(yùn)維常犯的錯(cuò)誤是找一臺(tái) Windows XP 裝同一個(gè)安裝包結(jié)果發(fā)現(xiàn)組件列表里少了一多半然后開始懷疑是“包不完整”。其實(shí)不是包不完整是系統(tǒng)沒有提供對(duì)應(yīng)組件的注冊(cè)入口。要完整的 FTP、SMTP、遠(yuǎn)程管理請(qǐng)直接上 Server 2003。在更晚的系統(tǒng)上比如 Windows 7、Windows 10、Windows Server 2008 R2 以上雙擊任何聲稱是“iis6.0完整安裝包”的 exe 都沒有意義——這些系統(tǒng)根本沒給 IIS 6.0 留內(nèi)核級(jí)宿主關(guān)鍵是 isapi 和元數(shù)據(jù)庫(kù)訪問層已經(jīng)換代。微軟給現(xiàn)代系統(tǒng)準(zhǔn)備的是一個(gè)叫“IIS 6 管理兼容性”的可選組件它提供的是 Metabase 兼容 API而不是一個(gè)完整的 IIS 6.0 運(yùn)行時(shí)。這個(gè)區(qū)別很關(guān)鍵如果你是要“跑一個(gè)只能認(rèn) IIS 6.0 的老程序”需要的是完整運(yùn)行環(huán)境那老老實(shí)實(shí)開一臺(tái) Server 2003 虛擬機(jī)如果只是“讓老管理腳本能用”現(xiàn)代系統(tǒng)上的兼容組件就夠。安裝包本身還有 32 位和 64 位的區(qū)別。Windows Server 2003 x64 版帶的 IIS 6.0 以 32 位兼容模式WOW64運(yùn)行這意味著所有 ISAPI 篩選器、ASP 應(yīng)用池默認(rèn)都會(huì)按 32 位進(jìn)程加載。老系統(tǒng)里如果混著 32 位和 64 位原生 DLL就要注意應(yīng)用池的“啟用 32 位應(yīng)用程序”開關(guān)。這個(gè)開關(guān)放錯(cuò)表現(xiàn)通常是頁(yè)面 500、事件日志里出現(xiàn)加載 DLL 失敗。雖然你手里的“完整安裝包”文件結(jié)構(gòu)一樣、裝法一樣但 32/64 位宿主決定了后面一堆玄學(xué)問題別拿 x86 的排查習(xí)慣直接套 x64 環(huán)境。2.2 一個(gè)“完整”包里到底有什么在 Windows Server 2003 系統(tǒng)盤里IIS 6.0 不是孤立文件而是以“應(yīng)用程序服務(wù)器”這個(gè) Windows 組件族的形式存在。打開控制面板的“添加或刪除程序”在“添加/刪除 Windows 組件”里能看到“應(yīng)用程序服務(wù)器”它的詳細(xì)信息里列著以下子組件Windows 組件組件 ID用途ASP.NETaspnet托管代碼 Web 應(yīng)用運(yùn)行環(huán)境Internet 信息服務(wù)IISiis_common / iis_www核心 Web 服務(wù)、元數(shù)據(jù)庫(kù)和 ISAPI 支持FTP 服務(wù)iis_ftp文件傳輸服務(wù)基于 IIS 元數(shù)據(jù)庫(kù)配置SMTP 服務(wù)iis_smtp發(fā)信服務(wù)老應(yīng)用常用它做郵件通知NNTP 服務(wù)iis_nntp新聞組服務(wù)如今很少用到FrontPage 2002 Server Extensionsfp_extensions老網(wǎng)頁(yè)發(fā)布擴(kuò)展裝了容易被利用遠(yuǎn)程桌面 Web 連接ts_web通過 Web 頁(yè)面提供遠(yuǎn)程桌面入口安全風(fēng)險(xiǎn)高所謂“完整安裝包”正常情況下不是指一個(gè)下載回來的壓縮包而是你能把上述所有子組件一次裝齊的那套安裝介質(zhì)。很多人裝 IIS 6.0 時(shí)只勾了“Internet 信息服務(wù)”最外層導(dǎo)致 ASP 支持沒被帶進(jìn)來結(jié)果把 asp、aspx 頁(yè)面跑出 404 或 500然后反過來質(zhì)疑安裝包不完整。其實(shí) IIS 6.0 的 ASP 支持不是一個(gè)單獨(dú)的大組件它掛在 IIS 信息服務(wù)詳細(xì)信息里的“萬(wàn)維網(wǎng)服務(wù) → ASP”子項(xiàng)下默認(rèn)是勾上的但第三方精簡(jiǎn)包往往會(huì)把它裁掉。完整安裝包的意義就是把這些默認(rèn)項(xiàng)都保留原樣。除了這些能“看到”的組件IIS 6.0 還依賴一組系統(tǒng)級(jí)服務(wù)IIS Admin Service管理元數(shù)據(jù)庫(kù)、World Wide Web Publishing Service請(qǐng)求處理和進(jìn)程管理以及底層的 RPC、Windows Sockets 和 CryptoAPI。裝 IIS 前這些基礎(chǔ)服務(wù)必須是啟用狀態(tài)。老系統(tǒng)如果之前被人優(yōu)化過服務(wù)列表把 Remote Procedure Call 或 Windows Management Instrumentation 停掉了IIS 安裝通常會(huì)半途失敗或者裝完服務(wù)起不來。這也是為什么明明“包沒問題”卻裝不上的常見原因之一。3. 完整安裝包從哪來從系統(tǒng) ISO 里提取并校驗(yàn)3.1 網(wǎng)上的“iis6.0安裝包”為什么大多不敢用資深運(yùn)維都有個(gè)習(xí)慣看到幾百 KB 到幾十 MB 的“IIS 6.0 完整安裝包”exe第一反應(yīng)是先掃毒第二反應(yīng)是查它到底是什么格式。因?yàn)?IIS 6.0 本質(zhì)是 Windows 組件官方發(fā)布形態(tài)是“系統(tǒng)安裝盤里的一組文件 注冊(cè)表腳本”從來沒有單獨(dú)發(fā)行過安裝器。網(wǎng)上那些打包成 exe 的版本多數(shù)是別人從自己的 2003 安裝盤 i386 目錄里把相關(guān)文件抽出來再用打包工具做成的“綠色安裝版”。這里頭的問題很多有的只抽了主程序丟掉了 inf 腳本裝完服務(wù)列表里根本沒有 w3svc有的是為了壓縮體積把 ASP 支持的腳本引擎、WScript 宿主都裁掉還有相當(dāng)一部分被人二次打包塞了挖礦腳本或后門裝完系統(tǒng)就成了別人肉雞。更隱蔽的坑是“精簡(jiǎn)安裝包”會(huì)破壞組件注冊(cè)信息。正常安裝 IIS 時(shí)Windows 組件安裝器會(huì)按 sysoc.inf 寫入服務(wù)注冊(cè)表、創(chuàng)建 IIS 元數(shù)據(jù)庫(kù)、設(shè)置 WMI 提供程序。個(gè)人打包的 exe 如果繞開這些步驟只是把文件拷到 system32 再硬注冊(cè)幾個(gè) DLL裝出來的 IIS 是殘缺的IIS Manager 可能能打開但服務(wù)起不來或起來后配置無(wú)法寫入 Metabase。這種環(huán)境很難排頁(yè)面報(bào)錯(cuò)都看不懂。所以我在給老系統(tǒng)做恢復(fù)時(shí)一律不用第三方 exe只用系統(tǒng)盤/ISO 自帶的組件安裝路徑。這個(gè)習(xí)慣幫我避免過太多“裝好了卻是黑匣子”的返工。3.2 穩(wěn)妥路徑掛載 ISO 并復(fù)制 i386 目錄如果你手里有合法的 Windows Server 2003 安裝 ISO正版光盤鏡像或公司資產(chǎn)庫(kù)里的備份這就是最靠譜的“完整安裝包”。第一步是把 ISO 掛載到系統(tǒng)里。2003 原生不支持直接掛載 ISO常見做法是裝一個(gè)虛擬光驅(qū)工具或者把 ISO 解壓到一個(gè)目錄。對(duì)虛擬機(jī)來說更簡(jiǎn)單的方式是把 ISO 直接掛到虛擬機(jī)的光驅(qū)上開機(jī)后它就是一張“光盤”。然后我習(xí)慣先把 i386 目錄整個(gè)復(fù)制到本地硬盤相當(dāng)于給自己留一個(gè)離線安裝包避免安裝到一半提示“請(qǐng)插入光盤”而光驅(qū)又恰好被占用。復(fù)制命令如下if not exist C:\i386 mkdir C:\i386 xcopy D:\i386 C:\i386 /E /I /H /R /Y參數(shù)含義/E 復(fù)制所有子目錄包括空目錄/I 如果目標(biāo)不存在就按目錄處理/H 包含隱藏和系統(tǒng)文件i386 里有些文件屬性是隱藏的漏掉后面就會(huì)缺文件/R 覆蓋只讀文件/Y 直接覆蓋不詢問。2003 的 i386 完整目錄大約 1.2 GB 到 1.8 GB取決于是否集成 Service Pack。復(fù)制完之后安裝程序需要的文件都在 C:\i386 里安裝時(shí)把文件來源指向這個(gè)目錄就不會(huì)因?yàn)楣獗P彈出、ISO 被占用而中斷。提示我從不在生產(chǎn)老服務(wù)器上直接裝網(wǎng)上流傳的個(gè)人打包 IIS 安裝包。要么用正版系統(tǒng)介質(zhì)要么先在虛擬機(jī)里驗(yàn)證完整再操作。3.3 用 sysoc.inf 確認(rèn)組件注冊(cè)再用 certutil 校驗(yàn)文件復(fù)制完目錄裝之前做兩件事。第一件是確認(rèn)系統(tǒng)認(rèn)識(shí)這個(gè)安裝入口。IIS 作為 Windows 組件它的安裝信息登記在 C:\WINDOWS\inf\sysoc.inf 里。用記事本打開這個(gè)文件能看到類似下面這樣的條目[Components] ; 下面是與 IIS 相關(guān)的部分組件注冊(cè)項(xiàng) iis_commonoc.dll,OcEntry,iis.inf,HIDE,7 iis_wwwoc.dll,OcEntry,iis.inf,HIDE,7 iis_ftpoc.dll,OcEntry,iis.inf,HIDE,7 iis_smtpoc.dll,OcEntry,iis.inf,HIDE,7這個(gè)格式從左到右分別是執(zhí)行模塊 oc.dll、組件安裝入口函數(shù) OcEntry、安裝腳本 iis.inf、顯示屬性 HIDE表示不單獨(dú)出現(xiàn)在組件列表里、安裝順序 7。如果這一行缺失組件列表里就不會(huì)出現(xiàn) IIS即使你有完整的 i386 文件也裝不上。這時(shí)候需要手工補(bǔ)回 sysoc.inf或者檢查系統(tǒng)是不是被做過組件精簡(jiǎn)Ghost 系統(tǒng)常見場(chǎng)景。注意改 sysoc.inf 前先復(fù)制一份為 sysoc.inf.bak格式寫錯(cuò)會(huì)導(dǎo)致“添加/刪除 Windows 組件”對(duì)話框直接打不開。第二件事是校驗(yàn)文件一致性。我不建議追求 MD5 對(duì)“網(wǎng)傳官方值”因?yàn)槭诸^ ISO 可能帶 SP1/SP2 整合包MD5 本來就和原版光盤不同。更實(shí)際的做法是先確認(rèn)關(guān)鍵文件存在、大小合理。例如 Web 服務(wù)的配置腳本 iis.inf 應(yīng)該在 i386 目錄里用 certutil 算一下哈希留個(gè)底certutil -hashfile C:\i386\iis.inf MD5 certutil -hashfile C:\i386\iis.dll MD5把兩個(gè)文件的哈希值記錄下來。如果日后裝出來行為異??梢杂孟嗤顝?fù)核看是不是文件在復(fù)制過程中損壞。這個(gè)“存檔哈?!钡牧?xí)慣在維護(hù)老環(huán)境時(shí)特別有用你永遠(yuǎn)不知道下一次接手的人會(huì)拿到什么版本的文件。不需要背哈希建一個(gè) install_notes.txt 放在 C:\i386 旁每次從 ISO 提取都算一遍對(duì)比不一致就直接換來源。另外如果你用的是 2003 原版盤而沒有集成 SP2裝完 IIS 后必須立刻打補(bǔ)丁否則系統(tǒng)暴露在公網(wǎng)就是早年間那些蠕蟲的復(fù)活場(chǎng)。更舒服的做法是先用 /integrate 把 SP2 集成進(jìn) ISO再裝系統(tǒng)裝 IIS后面能少打一堆補(bǔ)丁。4. 離線安裝與靜默部署兩條路把這個(gè)組件包裝上4.1 圖形化安裝十分鐘把 IIS 6.0 裝進(jìn) Server 2003離線安裝的經(jīng)典路徑是圖形界面。前提是已經(jīng)把 i386 復(fù)制到本地并且系統(tǒng)是完整的 Windows Server 2003。操作步驟是這樣打開“控制面板 → 添加或刪除程序 → 添加/刪除 Windows 組件”等組件列表刷出來后勾選“應(yīng)用程序服務(wù)器”點(diǎn)“詳細(xì)信息”再勾選“Internet 信息服務(wù)IIS”。如果要在內(nèi)網(wǎng)提供文件傳輸把“FTP 服務(wù)”也勾上老 OA 需要發(fā)信通知勾“SMTP 服務(wù)”。關(guān)鍵一步是組件列表右側(cè)的“文件來源”點(diǎn)它把路徑指到 C:\i386然后確認(rèn)。接下來系統(tǒng)開始復(fù)制文件整個(gè)過程 3 到 10 分鐘取決于是否同時(shí)裝 ASP.NET 和 FrontPage 擴(kuò)展。安裝完成后默認(rèn)會(huì)有一個(gè) Web 站點(diǎn)跑在 80 端口物理路徑在 C:\Inetpub\wwwroot。不用重啟機(jī)器IIS 6.0 裝好后服務(wù)是即時(shí)啟動(dòng)的。此時(shí)打開瀏覽器輸入 http://localhost能看到 IIS 6.0 默認(rèn)歡迎頁(yè)就說明裝通了。如果看不到先別急著調(diào)站點(diǎn)權(quán)限去“管理工具 → 服務(wù)”里確認(rèn) World Wide Web Publishing Service 是“已啟動(dòng)”。這個(gè)服務(wù)是 HTTP 請(qǐng)求的直接入口它沒起來IIS Manager 里站點(diǎn)就是停止?fàn)顟B(tài)。很多人裝完 IIS 第一反應(yīng)是去改站點(diǎn)配置結(jié)果問題根本不在站點(diǎn)而是服務(wù)被系統(tǒng)的精簡(jiǎn)策略禁用掉了。4.2 靜默自動(dòng)安裝sysocmgr 加應(yīng)答文件如果要在多臺(tái)虛擬機(jī)上批量部署或通過遠(yuǎn)程會(huì)話給一臺(tái)沒法交互的機(jī)器裝 IIS用 sysocmgr 走無(wú)人值守安裝更合適。它是 Windows 組件安裝器的命令行外殼能把原來“點(diǎn)下一步”的過程交給一個(gè)應(yīng)答文件執(zhí)行。先寫一個(gè)純文本應(yīng)答文件指定要裝的組件 ID[Components] iis_common ON iis_www ON iis_ftp OFF iis_smtp OFF ts_web OFF注意組件 ID 必須和 sysoc.inf 里登記的 ID 嚴(yán)格一致。iis_common 是 IIS 公共文件iis_www 是萬(wàn)維網(wǎng)服務(wù)ASP 支持在圖形界面里掛在 iis_www 的子項(xiàng)下所以只開 iis_www 就會(huì)帶上默認(rèn)的 ASP 支持。如果手里系統(tǒng)的 sysoc.inf 里額外注冊(cè)過 iis_asp也可以顯式加一行iis_asp ON沒注冊(cè)就不用加。下面的命令開始安裝sysocmgr /i:C:\WINDOWS\inf\sysoc.inf /u:C:\iis_install.txt /c參數(shù)說明/i 指定組件注冊(cè)文件必須指向系統(tǒng)當(dāng)前實(shí)際使用的 sysoc.inf/u 指向應(yīng)答文件/c 表示安裝過程結(jié)束后不顯示最終完成確認(rèn)頁(yè)適合腳本化調(diào)用。執(zhí)行后系統(tǒng)開始復(fù)制文件期間不要強(qiáng)制關(guān)機(jī)否則組件注冊(cè)表寫到一半下次開機(jī)服務(wù)列表會(huì)殘缺還得手工清理。靜默安裝和圖形安裝最終產(chǎn)出完全一樣區(qū)別只是少了一路點(diǎn)擊。4.3 安裝結(jié)果的最小驗(yàn)證清單裝完 IIS 后先別急著部署站點(diǎn)按下面幾步驗(yàn)證一遍能篩掉八成安裝問題。第一步看服務(wù)狀態(tài)sc query w3svc sc query iisadmin正常時(shí)兩個(gè)服務(wù) STATE 都應(yīng)該是 RUNNING。如果 w3svc 顯示 STOPPED 而 iisadmin 正常多半是端口被占或應(yīng)用池配置損壞。第二步用瀏覽器訪問 http://localhost看到默認(rèn)歡迎頁(yè)就說明 HTTP 棧通。第三步看日志目錄是否在寫dir C:\WINDOWS\system32\logfiles\W3SVC1只要有新建的 .log 文件說明請(qǐng)求處理鏈路完整。這套驗(yàn)證從服務(wù)、端口、靜態(tài)頁(yè)面、日志四個(gè)維度檢查和當(dāng)年排 IIS 5.0 翻車時(shí)的思路一脈相承。全部通過再看 IIS Manager 里站點(diǎn)狀態(tài)是不是“正在運(yùn)行”然后裝完頭 10 分鐘的任務(wù)才算結(jié)尾。5. 避坑指南IIS 6.0 安裝里最常見的五個(gè)坑IIS 6.0 的安裝坑基本集中在三個(gè)時(shí)間點(diǎn)安裝前來源與宿主、安裝中文件復(fù)制與組件注冊(cè)、安裝后服務(wù)與端口。下面五條是我在恢復(fù)老系統(tǒng)時(shí)踩過或幫人擦過屁股的高頻問題按現(xiàn)象、原因、解決寫遇到直接對(duì)照。5.1 下載的“完整安裝包”被殺軟干掉或雙擊提示不是有效程序現(xiàn)象從網(wǎng)盤下載的 iis6.0 安裝包雙擊后殺毒軟件直接報(bào)木馬或者提示“不是有效的 Win32 應(yīng)用程序”。有時(shí)第一次能打開裝到一半被系統(tǒng)攔截留下一個(gè)半截服務(wù)列表。原因第三方打包的 exe 不是微軟官方產(chǎn)物要么是自解壓程序被誤報(bào)要么確實(shí)被二次打包植入了遠(yuǎn)程控制腳本。更典型的問題是封裝時(shí)用了高版本打包工具或 64 位打包腳本32 位的 2003 根本無(wú)法執(zhí)行。解決放棄 exe回到系統(tǒng)盤/ISO 的組件安裝方式。手頭實(shí)在沒有 2003 安裝介質(zhì)就用自己公司鏡像庫(kù)里合法的 ISO一臺(tái)干凈的 Server 2003 虛擬機(jī)加原版 ISO比什么都靠譜。凡是安裝包下載記錄里“體積 5 MB 以下”“描述里強(qiáng)調(diào)免安裝綠色”的一律不看。5.2 添加/刪除 Windows 組件里沒有 IIS 或整項(xiàng)灰色現(xiàn)象在“應(yīng)用程序服務(wù)器”詳細(xì)信息里看不到“Internet 信息服務(wù)”或者看到了但復(fù)選框是灰色不可選。還有一種情況是整個(gè)“應(yīng)用程序服務(wù)器”條目都不存在。原因系統(tǒng)版本不對(duì)。Windows XP 只能裝功能受限的 IIS 6.0入口和 Server 2003 完全不同被封裝過的 Ghost 版 Server 2003 可能把組件安裝信息從 sysoc.inf 里刪掉了也可能是安裝者曾用工具精簡(jiǎn)過系統(tǒng)把 iis.inf 和 iis.dll 都移除了組件注冊(cè)信息跟著丟失。解決先確認(rèn)系統(tǒng)是完整的 Windows Server 2003不是 XP 也不是精簡(jiǎn)修改版。如果只是 sysoc.inf 里條目被刪可以手工補(bǔ)回組件注冊(cè)行并確保 i386 里有 iis.inf 和 iis.dll。補(bǔ)一次要小心別把格式寫錯(cuò)先備份 sysoc.inf 再改。如果系統(tǒng)已經(jīng)被深度精簡(jiǎn)別戀戰(zhàn)直接換一臺(tái)標(biāo)準(zhǔn) 2003 虛擬機(jī)精簡(jiǎn)系統(tǒng)后續(xù)維護(hù)成本只會(huì)更高。5.3 裝到一半提示需要插入磁盤或找不到 iis.inf現(xiàn)象圖形安裝進(jìn)行到文件復(fù)制階段彈窗提示“請(qǐng)將 Windows Server 2003 安裝盤插入光驅(qū)”指向某個(gè)具體文件時(shí)系統(tǒng)說找不到。光驅(qū)里明明有 ISO卻怎么都不認(rèn)。原因安裝程序在復(fù)制階段按注冊(cè)表里的 SourcePath 找文件如果 i386 目錄沒復(fù)制完整、ISO 盤符變化或虛擬光驅(qū)被其他虛擬機(jī)占用就會(huì)提示插盤。另一個(gè)場(chǎng)景是 2003 無(wú) SP 原版盤在安裝時(shí)校驗(yàn)文件版本不一致同樣會(huì)中斷。解決安裝前把 i386 完整復(fù)制到本地并讓文件來源明確指向 C:\i386。集成過 SP2 的盤一般不出現(xiàn)版本不匹配問題光盤沒集成 SP 就先提取再裝。還有個(gè)小技巧裝之前先在命令提示符里執(zhí)行一下dir C:\i386\iis.inf確認(rèn)文件存在、大小不為 0。這種 5 秒鐘的預(yù)檢能省掉安裝到一半中斷的煩躁。5.4 裝完默認(rèn)頁(yè)打不開403 或者 500現(xiàn)象http://localhost 返回 403 Forbidden 或 500 內(nèi)部錯(cuò)誤而服務(wù)狀態(tài)都顯示正在運(yùn)行。403 有自己的提示頁(yè)500 則大多是 ASP 相關(guān)錯(cuò)誤。原因403 多數(shù)是默認(rèn)文檔或權(quán)限問題500 里相當(dāng)大一部分是 ASP 支持沒裝上。前面說過第三方精簡(jiǎn)包經(jīng)常裁掉 ASP 的腳本引擎注冊(cè)導(dǎo)致 .asp 文件全部 500而靜態(tài) html 正常。還有一部分 500 是 IWAM 賬號(hào)和 IIS 進(jìn)程賬號(hào)的密碼不同步老系統(tǒng)恢復(fù)場(chǎng)景很常見。解決先確認(rèn) IIS 信息服務(wù)里“萬(wàn)維網(wǎng)服務(wù) → ASP”是勾選狀態(tài)沒勾就補(bǔ)勾重裝。IWAM 賬號(hào)不同步可以用“管理工具 → 計(jì)算機(jī)管理 → 本地用戶和組”檢查 IWAM_機(jī)器名 賬號(hào)狀態(tài)然后在命令提示符執(zhí)行cscript C:\Inetpub\AdminScripts\synciwam.vbs -v這條腳本會(huì)把 IIS 元數(shù)據(jù)庫(kù)中的進(jìn)程標(biāo)識(shí)密碼同步到本地賬號(hào)數(shù)據(jù)庫(kù)跑完再去刷新頁(yè)面。這是 IIS 6.0 時(shí)代排 ASP 500 的保留手段比手工改密碼省事得多。5.5 w3svc 死活起不來依賴服務(wù)或端口被占現(xiàn)象IIS 裝完iisadminIIS Admin Service能啟動(dòng)但 w3svc 一啟動(dòng)就自動(dòng)停止事件日志里寫“服務(wù)在啟動(dòng)后停止”或“地址已被占用”。有時(shí) iisadmin 本身就起不來提示“服務(wù)無(wú)法啟動(dòng)”。原因按頻率排序第一系統(tǒng)服務(wù)被優(yōu)化工具禁用了 RPC 或 Windows Management InstrumentationIIS Admin 連不上元數(shù)據(jù)庫(kù)第二80 端口被其他 Web 服務(wù)Apache、Nginx、某些網(wǎng)管軟件占用w3svc 綁定失敗第三Metabase 損壞或權(quán)限 ACL 不對(duì)導(dǎo)致進(jìn)程無(wú)法讀取配置。解決先從服務(wù)維度查sc query rpcss sc query winmgmt確保兩個(gè)依賴服務(wù)狀態(tài)是 RUNNING。然后看端口netstat -ano | findstr :80如果出現(xiàn)非 IIS 進(jìn)程占用先把對(duì)方停掉或把 IIS 默認(rèn)端口改到 8080 測(cè)試。Metabase 損壞時(shí)IIS Manager 打開會(huì)報(bào)錯(cuò)可以嘗試從之前的備份恢復(fù)沒備份就只能用cscript adsutil.vbs DELETE w3svc把 Web 服務(wù)配置刪掉重建這是最后手段但確實(shí)有效。6. 裝完以后立刻做三件事快照、Metabase 備份、最小冒煙IIS 6.0 裝通只是開始。我的習(xí)慣是裝完十分鐘內(nèi)做三件事順序不能亂。第一在虛擬機(jī)上打一個(gè)快照。IIS 6.0 的元數(shù)據(jù)庫(kù)是明文 XML很多老配置操作不可逆比如改錯(cuò)了應(yīng)用池隔離模式再想切回 IIS 5.0 隔離模式只靠界面按鈕往往無(wú)效??煺帐呛蠡谒幣渲酶膲闹苯踊貪L比在系統(tǒng)里慢慢修省一晚上。第二件事備份 Metabase。在 IIS Manager 里右鍵本地計(jì)算機(jī)“所有任務(wù)”→“備份/還原配置”→“創(chuàng)建備份”起個(gè)好認(rèn)的名字比如 pre_deploy。備份文件存在 C:\WINDOWS\system32\inetsrv\MetaBack包含 metabase.xml 和 schema 文件夾?;謴?fù)時(shí)在同一個(gè)界面點(diǎn)“還原”或者用命令行cscript C:\Inetpub\AdminScripts\adsutil.vbs BACKUP pre_deploy如果不放心直接復(fù)制 MetaBack 目錄到其他盤也可以注意 IIS Admin 服務(wù)在復(fù)制時(shí)會(huì)鎖文件先停止服務(wù)再?gòu)?fù)制更穩(wěn)。第三件事做最小冒煙測(cè)試把帶業(yè)務(wù)邏輯的 aspx 測(cè)試頁(yè)丟到站點(diǎn)目錄確認(rèn)腳本引擎和數(shù)據(jù)庫(kù)連接通道可用給 SMTP 虛擬服務(wù)器發(fā)一封測(cè)試信。三項(xiàng)都過再開始遷移真實(shí)站點(diǎn)。當(dāng)年我接手一臺(tái) 2003裝完沒做備份就調(diào) ISAPI 篩選器結(jié)果 Metabase 損壞、服務(wù)起不來花了兩個(gè)晚上才恢復(fù)。老系統(tǒng)的特征是“壞了之后修復(fù)工具比系統(tǒng)本身更難找”所以任何操作之前先留恢復(fù)點(diǎn)。希望這個(gè)習(xí)慣也能幫到你。如果這臺(tái) IIS 6.0 只是為了兼容舊代碼盡早規(guī)劃把應(yīng)用遷到現(xiàn)代 IIS 的共享配置上——IIS 6.0 的隔離模式、腳本引擎和補(bǔ)丁支持終會(huì)跟不上時(shí)代早做打算別等翻車再后悔。本文還有配套的精品資源點(diǎn)擊獲取