許多開發者在將網站遷移至 IIS 6(Windows Server 2003)時,會遭遇一系列「莫名其妙」的錯誤。這些問題有的源自 IIS 6 預設安全性大幅提升(預設關閉父路徑、Web 服務擴展預設禁止),有的則是舊版設定不相容。本文彙整 8 大高頻故障,附帶症狀、成因與圖文並茂的解決步驟,助您快速排錯上線。
ASP 0175 : 80004005Server.MapPath() 錯誤 'ASP 0175 : 80004005'
不允許的 Path 字元
/xxx/OpenDatabase.asp,行 4
在 MapPath 的 Path 參數中不允許字元 '..'。
IIS 6 出於安全考量,預設停用「啟用父路徑」。許多舊版 ASP 程式大量使用 ../ 相對路徑,導致 Server.MapPath 失效。
HTTP 404瀏覽 .asp、.aspx、.cgi 頁面均回傳 HTTP 404 - 找不到檔案或目錄。
IIS 6 新增「Web 服務擴展」機制,預設僅允許靜態檔案,ASP、ASP.NET、CGI 等動態擴展均處於「禁止」狀態。
HTTP 401.2HTTP 401.2 - 未經授權:因伺服器設定拒絕存取。
| 驗證方式 | 適用場景 | 密碼傳輸 | 備註 |
|---|---|---|---|
| 匿名驗證 | 公開網站 | 無 | 使用 IUSR_機器名帳號 |
| 基本驗證 | 需限制存取的內部資源 | 明文(Base64) | 必須搭配 SSL |
| 整合式 Windows 驗證 | 內部網域環境 | 不傳送密碼(NTLM/Kerberos) | 單一登入體驗佳 |
| 摘要式驗證 | 跨 Proxy/防火牆 | 挑戰/回應加密 | 需 Active Directory |
| .NET Passport | 跨站單一登入 | 中央驗證 | 已棄用,改用 Azure AD |
依業務需求選擇驗證方式,於 內容 → 目錄安全性 → 驗證與存取控制 中調整。
HTTP 403.6內容 → 目錄安全性 → IP 位址與網域限制,確認「授與存取」或「拒絕存取」名單,移除誤封鎖的 IP 或網段。
HTTP 401.1控制台 → 管理工具 → 電腦管理 → 本地用戶和群組 → 使用者,啟用 IUSR_機器名 帳號。
HTTP 401.3資料夾右鍵 → 內容 → 安全性,確保 Users 群組至少具備「讀取與執行」、「列出資料夾內容」、「讀取」權限。
HTTP 500IWAM 密碼分別儲存在 Active Directory、IIS Metabase、COM+ 三處,同步機制偶爾失效導致三方密碼不一致。
rem 1. 在 AD 重設 IWAM 密碼
rem 2. 同步 IIS Metabase
c:\Inetpub\AdminScripts> adsutil SET w3svc/WAMUserPass "新密碼"
rem 3. 同步 COM+
cscript c:\inetpub\adminscripts\synciwam.vbs -v
內容 → HTTP 標頭 → MIME 類型 → 新增:
副檔名:.ISO MIME 類型:application/octet-stream
上述 8 大故障涵蓋 IIS 6 遷移初期 90% 以上的常見問題。若仍無法解決,請進一步排查防火牆封鎖、ODBC 設定、效能節流、執行緒限制等進階議題。建議將本文加入書籤,作為日常運維的快速查閱手冊。