IIS 6.0 核心變革:預設安全、模組化、核心模式處理
不同於 IIS 5.0 預設安裝並啟用所有擴充,IIS 6.0:
- 隨作業系統安裝但預設不安裝,需手動加入元件。
- 預設僅支援靜態內容 (HTML、圖片、CSS、JS),所有動態擴充 (ASP、ASP.NET、CGI、ISAPI、WebDAV、SSI、FrontPage Server Extensions) 均需在「Web 服務擴充」中明確「允許」。
- HTTP.sys 核心模式處理請求佇列、記錄、快取、頻寬節流,大幅提升靜態內容吞吐量與穩定性。
安裝 IIS 6.0 核心元件
- 「控制台」→「新增/移除程式」→「新增/移除 Windows 元件」。
- 勾選「應用程式伺服器」→「詳細資料」→ 勾選「Internet 資訊服務 (IIS)」→「詳細資料」。
- 核心勾選項:
- 「全球資訊網服務」→「詳細資料」→ 勾選「Active Server Pages」、「全球資訊網服務」 (核心)、「遠端管理 (HTML)」(選用)、「網頁伺服器擴充」 (選用)。
- 「檔案傳輸協定 (FTP) 服務」 (需 FTP 時勾選)。
- 「通用檔案」 (建議保留)。
點選「確定」→「下一步」完成安裝,系統會複製檔案並註冊元件。
建立與設定網站
- 「開始」→「系統管理工具」→「Internet 資訊服務 (IIS) 管理員」。
- 展開「本機電腦」→ 右鍵「網站」→「新增」→「網站」啟動精靈。
- 依序填寫:
- 網站描述:辨識名稱 (如「公司官網」)。
- IP 位址:全部未指派 / 特定 IP / 多 IP 多網站 (需主機標頭)。
- 連接埠:80 (標準 HTTP)、443 (HTTPS)、自訂。
- 路徑:網站根目錄實體路徑 (如
D:\WebSites\CorpSite),建議 NTFS 格式。
- 存取權限:預設「讀取」、「執行指令碼」 (ASP/ASP.NET 需)、「寫入」 (上傳功能需)、「瀏覽」 (目錄列表) 視需求勾選。
完成精靈後,右鍵網站→「內容」→「文件」分頁→「加入」預設文件 Default.asp, Index.asp, Index.htm, Default.htm,調整優先順序。
關鍵:啟用 ASP 動態網頁支援
IIS 6.0 預設鎖定 ASP,必須手動開放:
- IIS 管理員 → 本機電腦 → 「Web 服務擴充」。
- 右鍵「Active Server Pages」→「允許」。狀態變為「允許」。
- 同步啟用「ASP.NET v2.0.50727」 (若需 .NET 2.0)、「ASP.NET v4.0.30319」 (若需 .NET 4.0)、「CGI」、「ISAPI 擴充」、「ISAPI 篩選器」、「伺服器端包含 (SSI)」、「WebDAV」等視專案需求。
NTFS 權限設定:ASP 寫入操作的關鍵
若網站根目錄在 NTFS 磁碟,且 ASP 程式碼需寫入 (上傳、快取、日誌、資料庫 .mdb):
- 右鍵網站根目錄→「內容」→「安全性」→「加入」→「IIS_WPG」群組 (IIS 6.0 工作進程身分識別預設群組)。
- 給予「讀取及執行」、「列出資料夾內容」、「讀取」、「寫入」 (視需求)、「修改」 (需刪除/重命名時)。
- 若使用自訂應用程式集區身分識別 (如
Domain\AppPoolIdentity),請改授權該帳號。
安全原則:僅對必要子目錄 (如 /Upload, /App_Data) 授予寫入/修改權限,根目錄保持「讀取及執行」。
應用程式集區隔離與回收設定 (進階)
- IIS 管理員 → 「應用程式集區」→ 右鍵→「新增」→ 輸入名稱 (如
CorpSitePool)。
- 右鍵新集區→「內容」:
- 「身分識別」:預設「網路服務」或自訂網域帳號 (需「以服務登入」權利)。
- 「回收」:勾選「固定間隔」(如 1740 分鐘 = 29 小時錯峰)、記憶體限制 (如 500MB)、要求數 (如 5000)、排程時間 (如凌晨 03:00)。
- 「健康偵測」:啟用 Ping、啟動時間限制 (90 秒)、閒置逾時 (20 分鐘釋放資源)。
- 網站右鍵→「內容」→「主目錄」→「應用程式集區」選擇新建立的集區。
常見問題快速排查
| 錯誤 | 原因 | 解決 |
| HTTP 403.1 存取被拒 | NTFS 權限缺少 IIS_WPG 讀取 | 授權根目錄讀取及執行 |
| HTTP 404.3 對應原則禁止 | ASP/ASP.NET 未在 Web 服務擴充允許 | IIS 管理員→Web 服務擴充→允許對應擴充 |
| ASP 連資料庫失敗 80004005 | .mdb 檔案/目錄無寫入權限 (Jet 需鎖定檔) | 授權 IIS_WPG 對 .mdb 所在目錄修改權限 |
| 上傳大檔案失敗 | ASPMaxRequestEntityAllowed 預設 200KB | Metabase 修改或 IIS 管理員→網站內容→主目錄→設定→應用程式→限制 |