當 IIS 安裝順序錯誤(先裝 IIS 再裝 .NET)、手動移除腳本對應、或升級 .NET 版本後,需執行 aspnet_regiis.exe 重新註冊 ASP.NET ISAPI 擴充與腳本對應。本文提供完整參數說明與常用情境指令。
工具位置
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe (32-bit)
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe (64-bit)
.NET 2.0/3.5 位於 v2.0.50727 目錄
最常用指令
| 指令 | 用途 | 說明 |
aspnet_regiis.exe -i |
完整安裝/註冊 |
安裝目前版本 ASP.NET,更新 IIS 元件資料庫根節點及所有子應用程式的腳本對應,現有舊版對應會升級。最常用。 |
aspnet_regiis.exe -ir |
僅註冊不更新對應 |
安裝 ASP.NET 但不修改現有腳本對應,適合多版本共存需手動管理對應時。 |
aspnet_regiis.exe -i -enable |
註冊並啟用 |
IIS 7.0+ 需額外在 ISAPI/CGI 限制清單中啟用 ASP.NET,此參數一次完成。 |
aspnet_regiis.exe -u |
解除安裝 |
移除目前版本註冊,腳本對應自動指向機器上剩餘最高版本。 |
aspnet_regiis.exe -ua |
移除所有版本 |
清除機器上所有 ASP.NET 版本註冊。 |
進階:針對特定網站/應用程式操作
# 僅為「預設網站/Root/App1」註冊腳本對應 (遞迴)
aspnet_regiis.exe -s "W3SVC/1/ROOT/App1"
# 非遞迴 (僅該層級)
aspnet_regiis.exe -sn "W3SVC/1/ROOT/App1"
# 強制重寫該路徑所有腳本對應為目前版本 (遞迴)
aspnet_regiis.exe -r "W3SVC/1/ROOT/App1"
# 移除指定路徑所有 ASP.NET 腳本對應 (遞迴)
aspnet_regiis.exe -k "W3SVC/1/ROOT/App1"
# 非遞迴移除
aspnet_regiis.exe -kn "W3SVC/1/ROOT/App1"
查詢與診斷參數
| 參數 | 功能 |
-lv | 列出機器上所有已安裝 ASP.NET 版本、狀態、安裝路徑 |
-lk | 列出 IIS 元件資料庫中所有擁有 ASP.NET 腳本對應的路徑與版本 |
-c | 將目前版本客戶端腳本 (WebUIValidation.js 等) 複製到每個網站的 aspnet_client 目錄 |
-e | 移除目前版本客戶端腳本 |
-ea | 移除所有版本客戶端腳本 |
IIS 7.0+ (整合模式) 特別說明
- 整合模式應用程式池不依賴 ISAPI 對應,
aspnet_regiis -i 仍需執行以註冊模組、處理常式與機器層級設定。
- 若遇到「無法載入類型」或「找不到處理常式」,嘗試:
aspnet_regiis -i -enable 後重啟 IIS (`iisreset`)。
- 模組註冊位於 `system.webServer/modules` 與 `handlers`,可在 `applicationHost.config` 或網站 `web.config` 檢查。
完整參數速查 (官方輸出摘要)
aspnet_regiis.exe [options]
-i Install this version of ASP.NET (update scriptmaps)
-ir Install (register only, no scriptmap update)
-enable Enable ASP.NET in IIS restriction list (with -i/-ir)
-s path Install scriptmaps recursively at path
-sn path Install scriptmaps non-recursively at path
-r path Reinstall scriptmaps recursively at path (force)
-u Uninstall this version
-ua Uninstall all versions
-k path Remove all scriptmaps recursively at path
-kn path Remove all scriptmaps non-recursively at path
-lv List all installed versions with status
-lk List all metabase keys with scriptmaps
-c Install client scripts to aspnet_client
-e Remove client scripts for this version
-ea Remove all client scripts
-? Show this help
實操檢查清單
- 以**系統管理員身分**開啟命令提示字元 / PowerShell。
- 切換至正確 .NET 版本目錄 (Framework 或 Framework64)。
- 執行 `aspnet_regiis.exe -i -enable` (IIS 7+) 或 `aspnet_regiis.exe -i` (IIS 6)。
- 執行 `iisreset` 重啟 IIS。
- 開啟 IIS 管理員 → 處理常式對應 / ISAPI 與 CGI 限制,確認對應版本已啟用。
- 瀏覽測試 .aspx 頁面,確認無「無法載入類型」或 404/500 錯誤。