近期協助他人部署一個小型網站,在本機測試時發現:HTML 靜態頁面可正常瀏覽,但 ASPX 動態頁面卻無法存取。這現象直接指向 IIS 對靜態與動態資源處理機制的差異,核心原因通常是 IIS 安裝順序早於 .NET Framework,導致 ASP.NET 執行環境未正確註冊至 IIS。
當 IIS 接收到 HTTP 請求,會根據檔案副檔名判斷處理方式:
aspnet_isapi.dll)。若 .NET Framework 安裝在 IIS 之後,ASP.NET 所需的 ISAPI 對應關係不會自動建立,導致 ASPX 請求找不到處理程式,回傳 404 或直接顯示原始碼。
以管理員身分開啟「開發人員命令提示字元」(或 Visual Studio 命令提示字元),執行以下指令:
aspnet_regiis.exe -i
此指令會將 ASP.NET 版本註冊至 IIS,建立必要的 ISAPI 對應、應用程式集區與腳本對應。執行完成後,重新啟動 IIS(iisreset)即可恢復 ASPX 頁面正常瀏覽。
IIS 必須先於 .NET Framework 安裝,或在安裝 .NET Framework 後執行 aspnet_regiis -i 完成註冊,才能確保動態頁面正確由 ASP.NET 執行引擎處理。部署前檢查安裝順序可避免此類問題。