天天看點

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

作者:大偉哥愛分享
記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

某天一個系統的登入頁面無法顯示,顯示Service Unavailable HTTP Error 503. The service is unavailable,馬上登入伺服器上檢視IIS是否正常。打開IIS後發現應用程式池裡的狀态是已停止,便右鍵打開啟動,啟動後再次打開系統登入頁面,還是無法顯示,報503錯誤。再次檢視應用程式池裡的狀态,又變成已停止。

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

上網搜了搜報錯對應的解決方法,試了試方法:在應用程式池上--右鍵--進階設定--程序模型--辨別,更改了這項裡的“内置賬戶”,将原有的“ApplicationPoolIdentity”更改為“NetworkService”,然後重新開機下應用池,結果問題依舊。

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

又檢視了系統日志,顯示應用程式池将被自動禁用,原因是為此應用程式池提供服務的程序中出現一系列錯誤。

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

應用程式日志顯示子產品 DLL C:\Program Files (x86)\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll 未能加載。傳回的資料為錯誤資訊。

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

根據日志内容檢視與Net Core有關,但我記得這台WIN2008的伺服器上沒安裝過,打開控制台的程式進行檢視,發現别的同僚最近安裝了.net7.0和.NET Framework4.5,原因分析:net core runtime基于vc_redist.x64運作的,是以也就出現了此類錯誤需要安裝vc_redist.x64才能在iis上運作netcore項目,于是便下載下傳進行安裝,可最後提示安裝失敗了,原因是需要先安裝更新檔才行。生産伺服器連不了外網,又沒找到2008下的更新檔,是以此路還是不通。

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

于是又在網上挖呀挖,最終找到applicationHost.config這個配置檔案,它包括所有站點、應用程式、虛拟目錄和應用程式池的定義,以及 Web 伺服器設定的全局預設值。IIS的配置檔案中ApplicationHost.config的modules 元素中注冊了很多子產品 ,這些子產品供IIS承載的所有應用程式使用。

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.
記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

打開後,搜尋找到AspNetCoreModuleV2,在後面增加藍色部分内容,分别是內建模式,內建模式下運作時的版本和CPU型号适配。(包括:<globalModules>和<system.webServer>)

記錄處理登入頁面顯示: HTTP Error 503. The service is unavailable.

至此,在應用程式池裡重新啟動一下,網頁登入界面正常能顯示出來,問題解決了。

繼續閱讀