当前位置:首页 > 技术知识 > 正文内容

记录处理登录页面显示: HTTP Error 503. The service is unavailable.

maynowei6个月前 (09-14)技术知识67

某天一个系统的登录页面无法显示,显示Service Unavailable HTTP Error 503. The service is unavailable,马上登录服务器上查看IIS是否正常。打开IIS后发现应用程序池里的状态是已停止,便右键打开启动,启动后再次打开系统登录页面,还是无法显示,报503错误。再次查看应用程序池里的状态,又变成已停止。

上网搜了搜报错对应的解决方法,试了试方法:在应用程序池上--右键--高级设置--进程模型--标识,更改了这项里的“内置账户”,将原有的“ApplicationPoolIdentity”更改为“NetworkService”,然后重启下应用池,结果问题依旧。

又查看了系统日志,显示应用程序池将被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。

应用程序日志显示模块 DLL C:\Program Files (x86)\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll 未能加载。返回的数据为错误信息。

根据日志内容查看与Net Core有关,但我记得这台WIN2008的服务器上没安装过,打开控制面板的程序进行查看,发现别的同事最近安装了.net7.0和.NET Framework4.5,原因分析:net core runtime基于vc_redist.x64运行的,所以也就出现了此类错误需要安装vc_redist.x64才能在iis上运行netcore项目,于是便下载进行安装,可最后提示安装失败了,原因是需要先安装补丁才行。生产服务器连不了外网,又没找到2008下的补丁,所以此路还是不通。


于是又在网上挖呀挖,最终找到applicationHost.config这个配置文件,它包括所有站点、应用程序、虚拟目录和应用程序池的定义,以及 Web 服务器设置的全局默认值。IIS的配置文件中ApplicationHost.config的modules 元素中注册了很多模块 ,这些模块供IIS承载的所有应用程序使用。

打开后,搜索找到AspNetCoreModuleV2,在后面增加蓝色部分内容,分别是集成模式,集成模式下运行时的版本和CPU型号适配。(包括:<globalModules>和<system.webServer>)


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

相关文章

Objective-C :Category(category什么意思)

Category 引入在日常的开发中,可能会碰到这样的需求:给某个类增加方法。比如说,需要给NSString类增加一个打印的方法。当然,我们可以新建一个类比如TestString,并继承NSStrin...

Linux系统编程—互斥量mutex(linux 互斥量)

##互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也...

掌握C语言多线程:高效并发编程指南

一、多线程基础概念介绍多线程编程是现代软件开发中提高程序性能和响应性的重要技术。在C语言中,pthread(POSIX Threads)库是实现多线程编程的标准工具。本节将通俗易懂地介绍多线程的核心概...

Linux系统编程:条件变量为什么要用锁

条件变量可以解决线程同步和共享资源访问的问题,条件变量是对互斥锁的补充,它允许一个线程阻塞并等待另一个线程发送的信号,当收到信号时,阻塞的线程被唤醒并试图锁定与之相关的互斥锁。具体定义如下:等待:in...

Oracle中泄露“天机”的TNS(在oracle中发出的下列查询)

数据库的安全是长期存在的问题。在目前大量的数据泄露事件以及漏洞面前,大家看到的大都是SQl注入、越权操作、缓冲区溢出等这些具体漏洞。往往却忽视了造成这些问题的前提,黑客想要入侵数据库一定会尝试获取数据...

6 张图带你彻底搞懂分布式事务 XA 模式

XA 协议是由 X/Open 组织提出的分布式事务处理规范,主要定义了事务管理器 TM 和局部资源管理器 RM 之间的接口。目前主流的数据库,比如 oracle、DB2 都是支持 XA 协议的。mys...