在 Windows Server 2003/2008/R2 上安裝 .NET Framework 後,IIS 管理器 (inetmgr) 中網站/虛擬目錄「ASP.NET」頁籤缺少對應版本 (如 2.0、4.0),導致無法切換應用程式池 .NET 版本。原因:**ASP.NET 未向 IIS 註冊對應的 ISAPI 擴充與對應關係**。使用 aspnet_regiis.exe -i / -ir / -iru 即可快速修復。
# .NET Framework 2.0 / 3.0 / 3.5 (共用 2.0 執行階段)
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
# 64 位元系統同時執行 64 位元版本
cd C:\Windows\Microsoft.NET\Framework64\v2.0.50727
# .NET Framework 4.x
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
# 1. 安裝 ASP.NET ISAPI 擴充與對應 (不覆蓋現有)
aspnet_regiis.exe -i
# 2. 強制重新安裝 (修復損壞註冊)
aspnet_regiis.exe -ir
# 3. 更新所有應用程式池腳本對應 (謹慎,會影響現有站點)
# aspnet_regiis.exe -iru
Finished installing ASP.NET 字樣。iisreset /restart 或「服務」中重啟 W3SVC。
| 參數 | 用途 |
|---|---|
-i | 安裝 ASP.NET ISAPI 對應 (不覆蓋) |
-ir | 強制重新安裝 (修復),**最常用** |
-iru | 更新所有應用程式對應至當前版本 (會改變現有站點版本,慎用) |
-u | 解除安裝 ASP.NET 對應 |
-enable | 啟用指定版本的 ISAPI 擴充 |
-k | 建立用戶憑證存儲 (Client Certificates) |
64 位元 Windows **必須分別在 Framework 與 Framework64 目錄執行註冊**,否則 32 位元/64 位元應用程式池其一無法正常載入對應版本。
# 檢查 ISAPI 限制清單
%windir%\system32\inetsrv\appcmd.exe list config -section:isapiCgiRestriction
# 檢查處理常式對應
%windir%\system32\inetsrv\appcmd.exe list config -section:handlers | findstr ".aspx"
Web Server (IIS) → Application Development → ASP.NET 4.x / 3.5 功能已在「伺服器管理員」中安裝/啟用。C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll、aspnet_isapi.dll 檔案是否存在。ASP.NET 查看詳細錯誤。aspnet_regiis -ir 是 IIS 與 .NET Framework 版本對應問題的「萬能鑰」。記住:**管理員權限、雙目錄註冊、iisreset 重啟** 三步走,99% 情況即刻解決。