Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS 6.0 常見配置錯誤排查全集:父路徑、Web擴展、身份認證、腳本映射四大經典坑

編輯:關於伺服器

IIS 6.0 (Windows Server 2003) 雖已退役,但大量存量系統仍在運行。遷移、維護、故障排查時,這四大「經典配置坑」依然是 90% 問題的來源。本文給出**現象、根因、解決、驗證**標準化排查卡片,直擊痛點。

坑一:未啟用父路徑 — Server.MapPath() 報錯 80004005

維度內容
典型報錯Server.MapPath() 錯誤 ASP 0175 : 80004005 / 不允許的 Path 字符 / 在 MapPath 的 Path 參數中不允許字符 ..
代碼特徵使用相對路徑 ../、../../ 訪問上級目錄文件 (如 Server.MapPath("../include/conn.asp"))
根因IIS 6.0 默認**禁用父路徑** (安全考慮),防止目錄遍歷攻擊
解決IIS 管理器 → 網站屬性 → **主目錄** 標籤 → **配置** 按鈕 → **選項** 標籤 → 勾選 **「啟用父路徑」** → 確定 → 刷新頁面
安全建議啟用後,**嚴禁**在 Web 目錄下放置敏感文件 (配置、備份、源碼),防止 ../../web.config 類洩露。推薦改用絕對路徑或 Server.MapPath("/") 根路徑引用。

坑二:Web 服務擴展未允許 — ASP/ASP.NET/CGI 返回 404

維度內容
典型報錯HTTP 錯誤 404 - 文件或目錄未找到 (文件明明存在,靜態 .html 正常,動態 .asp/.aspx/.cgi 404)
根因IIS 6.0 引入 **Web 服務擴展** 白名單機制,默認**禁止所有動態腳本執行** (ASP, ASP.NET, CGI, ISAPI, SSI 等)
解決IIS 管理器 → **Web 服務擴展** 節點 → 選中 Active Server Pages / ASP.NET v4.0.xxxxxx / CGI 程序 → 右側點擊 **「允許」** → 狀態變為「已允許」
驗證瀏覽器訪問 test.asp (含 <%=Now()%>) 應顯示時間而非 404
避坑安裝 ASP.NET 後**必須**在這裡允許對應版本 (v2.0/v4.0),否則裝了也白裝

坑三:身份認證配置不當 — 401.1 / 401.2 / 401.3 拒絕訪問

認證方式適用場景關鍵配置點常見坑
匿名訪問 (默認)公網網站、API、靜態資源賬戶:IUSR_機器名 (IIS 6) / IUSR (IIS 7+)
密碼:勾選「允許 IIS 控制密碼」
權限:NTFS 讀取/執行
密碼不同步、賬戶禁用、NTFS 無讀取權限 → 401.3
基本身份驗證內部 API、測試環境、需明文傳遞憑據需 SSL 加密 (否則密碼明文傳輸)
域/本地用戶帳戶
未啟用 SSL → 安全風險極高;編碼問題導致中文用戶名失敗
Windows 集成驗證 (NTLM/Kerberos)內網門戶、Intranet、單點登錄 (SSO)IE/Edge/Chrome 需將站點加入「本地 Intranet」區域
服務器 SPN 註冊正確 (Kerberos)
跨域/代理/負載均衡導致 NTLM 失效 → 回退基本認證或 401
摘要身份驗證需防重放攻擊、不想上 SSL 的舊系統需域控制器、Active Directory、反向加密存儲密碼配置複雜、客戶端支持差、已淘汰
.NET Passport歷史產物,已停用——

標準解決步驟 (匿名訪問公網站點):

  1. IIS → 網站屬性 → **目錄安全性** → **身份驗證和訪問控制** → **編輯**
  2. **僅勾選「匿名訪問」** 和 **「集成 Windows 驗證」**(可選,內網用)
  3. 匿名訪問 → **編輯** → 確認用戶名為 IUSR_機器名 → **取消勾選「允許 IIS 控制密碼」** → 手動設置強密碼 → 同步到 IWAM_機器名
  4. NTFS 權限:網站目錄 → 安全 → 添加 IUSR_機器名、IIS_WPG → **讀取和執行、列出文件夾內容、讀取**

坑四:腳本映射/執行權限缺失 — 500.19 / 404.3 / 源碼洩露

現象根因解決
.asp 顯示源碼 / 提示下載ASP 未在 Web 服務擴展允許、或腳本映射缺失、或執行權限為「無」允許 ASP 擴展;主目錄→配置→映射→.asp→可執行文件 C:\WINDOWS\system32\inetsrv\asp.dll;執行權限選「純腳本」
.aspx 返回 404.3 / 500.19ASP.NET ISAPI 未註冊 / 版本衝突 / 管道模式不匹配aspnet_regiis -i (IIS 6/7 經典);應用程序池 .NET 版本/管道模式 (集成/經典) 匹配項目需求
.php / .cgi 404/500腳本映射指向錯誤 / FastCGI 模塊未安裝 / php.ini 路徑錯映射 .php → php-cgi.exe (FastCGI);安裝 PHP Manager / 手動註冊 FastCGI 模塊

綜合驗證清單 (部署/遷移後必跑)

[ ] 靜態 .html/.css/.js/.jpg 正常訪問 (200)
[ ] 動態 .asp 執行顯示時間 (啟用父路徑、Web擴展、匿名認證、腳本映射、NTFS權限)
[ ] .aspx 頁面正常渲染 (ASP.NET版本、管道模式、應用程序池身份)
[ ] 郵件發送/組件調用/數據庫連接正常 (COM+、MDAC、連接字符串、防火牆)
[ ] 自定義 404/500 頁面生效 (目錄安全性→自定義錯誤→URL 格式 /404.htm)
[ ] 日誌記錄正常 (網站屬性→網站→啟用日誌→W3C擴展格式→本地時間)
[ ] 預設文檔含 index.asp/index.aspx/index.php/index.html (文檔標籤)
[ ] 目錄瀏覽已禁用 (主目錄→目錄瀏覽→取消勾選)
[ ] 父路徑按需啟用 (安全評估後)
[ ] 請求限制/頻帶限制/連接超時按業務配置 (網站屬性→性能/網站標籤)

總結

IIS 6.0 的四大經典坑 —— **父路徑、Web擴展、身份認證、腳本映射** —— 本質上是 **「默認安全策略過嚴」與「配置分散在多個標籤頁」的產物**。掌握上述標準化排查卡片,配合 NTFS 權限、COM+ 組件、應用程序池身份的「鐵三角」檢查,足以解決 95% 的遷移/部署/故障場景。對於仍在服役的 Windows 2003 老兵,這份清單請打印貼在機房牆上——下次故障來時,你能從容應對。

Copyright © Windows教程網 All Rights Reserved