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

IIS HTTP 401 錯誤完整排查手冊:401.1 / 401.2 / 401.3 逐一擊破

編輯:關於伺服器

HTTP 401 代表「未授權」,但子狀態碼揭示完全不同的根因。本文針對 IIS 5/6/7 經典三大子錯誤提供標準化排查流程。

錯誤碼速查表

子碼顯示訊息核心原因核心對策
401.1登入失敗:認證無效匿名帳號 IUSR_* 被停用、鎖定、密碼錯誤、無「從網路存取此電腦」權限啟用帳號、重設密碼、授予本地原則權限
401.2登入失敗:伺服器設定錯誤網站「目錄安全性」未勾選「啟用匿名存取」勾選匿名存取、指定有效帳號密碼
401.3未授權:ACL 拒絕存取資源匿名帳號(通常屬 Guests)無網站目錄 NTFS 讀取權限於目錄安全性頁籤授予 IUSR_* 讀取/執行權限

詳細排查步驟

401.1 —— 匿名帳號可用性檢查

  1. IIS 管理員 → 網站內容 → 目錄安全性 → 匿名存取與驗證控制 → 編輯 → 記下「使用者名稱」(預設 IUSR_機器名)。
  2. Win+R → lusrmgr.msc → 使用者 → 找到該帳號 → 確認未勾選「帳號已停用」、密碼未過期。
  3. 若帳號正常但仍報錯,檢查本地安全性原則:
    本地原則 → 使用者權利指派 → 從網路存取此電腦
    確認該帳號或其所屬群組(通常為 Guests)在列表中。
  4. 補充:若使用自訂匿名帳號,建議加入 IIS_WPG(IIS 6)或 IIS_IUSRS(IIS 7+)群組,而非 Guests,符合最小權限原則。

401.2 —— 匿名驗證未啟用

  1. IIS 管理員 → 網站內容 → 目錄安全性 → 身分驗證與存取控制 → 編輯。
  2. 勾選 啟用匿名存取。
  3. 「使用者名稱」填入有效帳號(或點「瀏覽」選取),輸入兩次密碼確認。
  4. 確定套用,必要時重啟 IIS(iisreset)。

401.3 —— NTFS 權限不足

  1. 以檔案總管開啟網站實體路徑(如 D:\WebRoot) → 右鍵內容 → 安全性。
  2. 點「編輯」→「新增」→ 輸入匿名帳號(IUSR_機器名)或 IIS_IUSRS 群組。
  3. 授予 讀取 & 執行、列出資料夾內容、讀取 三項權限。
  4. 若有子目錄需寫入(上傳、快取),單獨於該子目錄額外授予「寫入」權限,切勿對整站開放寫入。
  5. 確認權限繼承正常(進階 → 勾選「允許繼承自父代的權限」)。

進階診斷技巧

  • 啟用 IIS 失敗要求追蹤(Failed Request Tracing):IIS 7+ 可於「失敗要求追蹤規則」新增 401.* 規則,自動產生詳細 XML 日誌,含驗證模組決策流程。
  • Process Monitor (ProcMon):篩選 w3wp.exe + Access Denied,即時定位被拒絕的檔案/登錄表路徑。
  • 檢查 Application Pool 身分識別:IIS 7+ 應用程式集區若使用 ApplicationPoolIdentity,實際存取檔案時會轉換為虛擬帳號 IIS AppPool\PoolName,需於 NTFS 授權該虛擬帳號。

快速驗證腳本

在網站根目錄建立 test.asp:

<%
Response.Write "Auth_User: " & Request.ServerVariables("AUTH_USER") & "<br>"
Response.Write "Auth_Type: " & Request.ServerVariables("AUTH_TYPE") & "<br>"
Response.Write "Logon_User: " & Request.ServerVariables("LOGON_USER") & "<br>"
%>

瀏覽該頁,觀察變數值即可判斷目前驗證狀態與生效帳號。

Copyright © Windows教程網 All Rights Reserved