只有累積,沒有奇蹟

2018年11月7日 星期三

[IIS] HTTP 錯誤 500.21 - Internal Server Error

前言

換新筆電後在安裝公司專案過程遇到很多問題,昨天是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 - 伺服器錯誤
從Server回傳給瀏覽器的錯誤代碼來看,是屬於伺服器錯誤
其中還有提示可能發生的原因與解決方法主要錯誤訊息為 : 

處理常式 "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
會跳出安裝畫面如下圖安裝進度100%後即完成


確認
  1. 重新reload畫面及正常執行
  2. 可以去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

1 則留言:

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com