天天看点

记录处理登录页面显示: 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.

至此,在应用程序池里重新启动一下,网页登录界面正常能显示出来,问题解决了。

继续阅读