IIS 6.0/7.x 常見兩類權限錯誤:虛擬目錄檔案存取被拒、IIS 中繼資料庫存取失敗。本文提供圖形介面權限向導修復與命令列註冊 ASP.NET 兩套標準解決流程。
問題一:虛擬目錄權限不足 — 權限向導修復
- IIS 管理員 → 展開網站 → 以滑鼠右鍵點選目標虛擬目錄 → 「所有工作」→「權限精靈」。
- 「下一步」→ 選擇「繼承所有安全性設定」→「下一步」。
- 選擇「取代所有目錄和檔案的存取權限 (建議)」→「下一步」→「完成」。
- 此操作將遞歸重設 NTFS ACL,解決寫入/執行被拒問題。
問題二:存取 IIS 中繼資料庫失敗 — ASP.NET 重新註冊
現象:ASP.NET 應用程式啟動報錯「無法存取 IIS 中繼資料庫」、事件檢視器記錄 ASP.NET 2.0.50727.0 錯誤。
原因:.NET Framework 安裝順序早於 IIS,或 IIS 重裝導致 ASP.NET ISAPI 對應遺失。
方法一:命令列註冊 (標準修復)
- 按 Win+R → 輸入
cmd → 以管理員身分執行。
- 切換至 .NET Framework 目錄(依版本調整):
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
- 執行註冊指令:
aspnet_regiis.exe -i
- 等待視窗顯示「Finished installing ASP.NET」並自動關閉。
- 重新啟動 IIS:
iisreset 或 服務管理員重啟 World Wide Web Publishing Service。
方法二:VS2005/2008 安裝順序導致的衝突修復
- 關閉 Visual Studio。
- 同樣執行
aspnet_regiis.exe -i 重新註冊。
- 若出現「無法建立 Mutex」錯誤:確認 VS 完全關閉、重啟電腦後再試。
進階排查:若上述方法無效
- 檢查
C:\Windows\Microsoft.NET\Framework64\ (x64 系統) 同步執行註冊。
- 使用
aspnet_regiis.exe -iru 完整重新安裝 ASP.NET 與更新指令碼對應。
- 檢查機器金鑰機制:
aspnet_regiis.exe -ga "NETWORK SERVICE" 授予存取權限。
- 修復 .NET Framework:控制台 → 程式集 → Microsoft .NET Framework → 變更 → 修復。
預防最佳實務
- 安裝順序:先裝 IIS(含 ASP.NET/ISAPI 角色服務)→ 再裝 Visual Studio / .NET SDK。
- 部署腳本化:使用 PowerShell DSC / Ansible 確保環境一致性。
- 定期執行
aspnet_regiis -i 作為維護窗口例行檢查項目。