Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows Server 2003 IIS 6.0 正確部署 ISAPI_Rewrite:服務帳號權限配置關鍵步驟

編輯:Windows Server 教學

問題背景

從 Windows 2000 IIS 5.0 升級至 Windows Server 2003 IIS 6.0 後,原本正常運作的 ISAPI_Rewrite(動態網址重寫為靜態 HTML 連結元件)在 IIS 管理介面持續顯示「未載入」,無法啟用。經排查發現,根因在於 IIS 6.0 全新的應用程式池隔離架構導致檔案權限需求變更。

根本原因分析

  • IIS 5.0:ISAPI 擴充套件在 `IWAM_<機器名>` 或 `IUSR_<機器名>` 帳號下執行
  • IIS 6.0:ISAPI 擴充套件在 應用程式池身分識別 下執行,預設為 Network Service(網路服務) 帳號
  • ISAPI_Rewrite 需讀寫其設定檔(`.ini`、`.map` 等)與快取檔案,若帳號無權限即無法載入

解決方案:授予服務帳號讀寫權限

  1. 確認目標網站所屬應用程式池身分識別(預設:Network Service)
  2. 找到 ISAPI_Rewrite 安裝目錄(如 `C:\ISAPI_Rewrite`)
  3. 右鍵資料夾 → [內容] → [安全性] 索引標籤
  4. 點選 [新增] → 輸入 Network Service → [檢查名稱] → [確定]
  5. 授予 讀取與寫入 權限(至少需修改設定檔、建立快取)
  6. 若使用自訂應用程式池身分識別(如 `IIS_WPG` 群組或特定網域帳號),同理授予該身分識別權限
  7. IIS 管理介面 → Web 服務擴展 → ISAPI_Rewrite 狀態應變為「允許」/「已載入」

驗證步驟

  1. 瀏覽器存取需重寫的動態網址(如 `article.asp?id=123`)
  2. 確認重寫為靜態形式(如 `article-123.html`)並正常顯示內容
  3. 查看 ISAPI_Rewrite 記錄檔確認重寫規則觸發

最佳實踐建議

  • 最小權限原則:僅授予 ISAPI_Rewrite 目錄必要的讀寫權限,不授予執行權限
  • 獨立應用程式池**:為使用 ISAPI_Rewrite 的網站建立專屬應用程式池,隔離身分識別
  • 定期審核權限**:Windows 更新/補丁安裝後可能重置權限,納入月度巡檢清單
  • 替代方案**:IIS 7.0+ 內建 URL Rewrite Module,若規劃遷移至新版 IIS 可考慮原生方案

結語

IIS 6.0 架構變更導致 ISAPI 元件執行身分從 IWAM/IUSR 改為應用程式池身分(預設 Network Service),是升級遷移中常見的權限陷阱。針對 ISAPI_Rewrite,核心解法是授予其安裝目錄對應身分識別的讀寫權限。此原理同樣適用於其他第三方 ISAPI 擴充套件/篩選器在 IIS 6.0+ 環境的部署疑難排解。

Copyright © Windows教程網 All Rights Reserved