2018年4月3日 星期二

Windows Server 2008 R2 建立新網站,出現 “HTTP 錯誤 500.21 - Internal Server Error”

最近要在新建的 Windows Server 2008 R2 上移轉舊的ASP .NET網站,該網站使用 .NET Framework 4.0,安裝前檢查系統內已安裝了Microsoft .NET Framework 4.7.1



該 Windows Server 2008 R2 是由VM環環中共用預設產出,所以並未安裝 IIS 7.5,於是先完成了 “網頁伺服器(IIS)” 角色的新增。



接著開啟 “Internet Information Services (IIS) 管理員”建立新網站,先查看目前狀況



建立新網站 Billing Report,並在應用程式集區中將 .NET Framework 改為 v4.0




看似完成了所有設定,但該網站確無法正常的被啟動,執行後出現以下錯誤

HTTP 錯誤 500.21 - Internal Server Error
處理常式 "PageHandlerFactory-Integrated" 的模組清單中有錯誤的模組 "ManagedPipelineHandler"



錯誤訊息中提到最有可能的原因第一點 “使用Managed處理常式,卻未安裝ASP.NET,或安裝不完整”,此案例真正問題原因是系統在啟用 IIS 之前安裝 .NET Framework 4,安裝的前後順序造成ASP.NET在 IIS 上無法正常運作。

此時需透過 ASP.NET IIS 註冊工具 (Aspnet_regiis.exe) 重新在網際網路資訊服務 (IIS) 註冊 ASP.NET 應用程式。透過ASP.NET IIS 註冊工具,重新在 IIS 註冊 .NET Framework4,並建立使用 .NET Framework 4 的應用程式集區。

需到.NET Framework4的對應路徑 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 並執行 aspnet_regiis.exe -i



這個執行會重新安裝 ASP.NET 4,並更新現有的應用程式以使用應用程式集區的 ASP.NET 4 版本。也會在 IIS Metabase 中同時更新 IIS 傳統模式及 IIS 整合模式的處理常式與指令對應。

這個修正過後網站恢復正常了


沒有留言:

張貼留言