換新筆電後在安裝公司專案過程遇到很多問題,昨天是SQL Server服務異常關閉,今天是專案出現問題是"HTTP 錯誤500.21 - Internal Server Error",但這樣也不錯,可以學到更多新知識與問題,這裡簡單紀錄一下處理過程
錯誤訊息 HTTP 錯誤 500.21
HTTP Status Code 狀態碼 是Server端 Response 的狀態,在 Status Code Definitions 文件中可以看到詳細的說明,在IIS 7.5之後 HTTP 狀態碼可以簡單分為下列幾種
- 1xx - 資訊
- 2xx - 成功
- 3xx - 重新導向
- 4xx - 用戶端錯誤
- 5xx - 伺服器錯誤
其中還有提示可能發生的原因與解決方法,主要錯誤訊息為 :
處理常式 "ExtensionlessUrlHandler-Integrated-4.0" 的模組清單中有錯誤的模組 "ManagedPipelineHandler"
關鍵字提到可能是 模組錯誤 與 ASP.NET安裝不完全,在看HTTP Status Code 500.21 是 無法識別模組,因此下一步便是比對桌機正常的專案環境與筆電的IIS設定站台的模組設定(Handler Mapping)差異
發現兩台模組設定大不相同,主要是缺少ASP.NET 4.0 相關模組
解決方式打開命令提示字元cmd,執行下列指令
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
- 重新reload畫面及正常執行
- 可以去IIS站台Handler Mapping發現已新增ISAPI 4.0相關模組
參考
IIS 7.0、IIS 7.5 及 IIS 8.0 的 HTTP 狀態碼
aspnet-regiis-exe-ir-does-not-work-on-windows-8
謝謝你!! 剛好遇到這個問題,謝謝大神!!!
回覆刪除