IIS进程池异常崩溃,导致网站 service unavailable,原因排查与记录。
昨晚十点钟的样子,网站崩溃,开始 service unavailable,最近开始业务高峰,心里一惊,麻痹肯定进程池又异常崩溃了。又碰到什么问题?上次是因为一个异步线程的问题,导致了进程池直接崩溃,后面修改掉了,这次又因为什么?
然后先新建了一个进程池,把网站先跑起来。
查看windows日志,发现如下错误:

先爆发了一个oom错误,再w3wp.exe崩溃了。
但是我确信,我的内存绝对足够,一般只占用70%最多。
所以当时我没办法找到问题,今天早上,一个同事反馈网站有一个功能异常,大致就是,从上传的excel中,读取数据,以前可以读到显示,现在不行了。
遂问另外一个负责开发的同事,可能是什么情况(因为代码没动过),同事说,是不是换过进程池?(因为以前有时候进程池出问题,第一个解决办法就是先新建进程池把网站跑起来。)
然后告诉我,是因为没开启IIS进程池高级设置那里的的一个选项(这台服务器我们都可以管理配置,他配置过这个选项,我不知道。),如图:
我听到以后,
第一个反映就是:那肯定是这个问题造成的了。
第二个反映是:卧槽,前台怎么能把这个开关打开?要知道,前台进程池的w3wp.exe经常会跑到2g以上的内存!!
先普及一下这个开关的作用,因为我的服务器是64位的,windows server 2008,然后读取excel的时候,用的是oledb,一定要安装windows office才能用,然后服务器上一直用的是windows office 2003。
so,问题来了:2003相关东西是不能以64位的方式被IIS进程加载的,所以要打开这个开关,让它能正确加载,但是这样一来,当前IIS进程将处于32位方式下运行。
so,问题又来了,32位程序,最大可用内存是2g
一切依然明了,首先是同事打开了IIS进程池高级设置的这个开关,导致了IIS进程池的进程以32位方式运行,然后高峰期业务量稍微一高,内存占用马上超过2g,
OOM 自然来了,然后一直这样W3WP.EXE自然崩溃了。
所以罪魁祸首就是打开了这个开关。。。。。
所以,暂时的解决办法,关注一下内存,跑得稍微高了点的时候,及时回收一下进程池。
第二步,想办法将那个开关变为true,并且让读excel的功能能 用。
要让开关能换为true且功能能正常的,无非就是,要么修改服务器环境,安装一个2010的office上去,或者修改读取excel的代码,不用微软提供的相关东西。
so,为了不对服务器做很大的改动,果断选择后者。
查资料,发现NPOI,很适合我的需求,用之,解决。大概用法见以下链接 http://www.cnblogs.com/Jerseyblog/p/6410559.html
以上,记录一下找到问题过程,以免以后自己忘记,也让可能有同种问题的人参考之。
===================================================================
以下代码纯粹是为了让搜索引擎收录好让友友或许能百度到这篇文章,可以不用看。是windows错误日志详情。(或许百度就收录这篇文章,你或许就刚好搜这个错误代码看到了呢?对吧。毕竟我截图,百度收录不到这个关键代号什么的)
进程主机空闲检查过程中发生错误。
Exception: System.OutOfMemoryException
Message: 引发类型为“System.OutOfMemoryException”的异常。
StackTrace: 在 System.Web.Hosting.ApplicationManager.CloneAppDomainsCollection()
在 System.Web.Hosting.ApplicationManager.IsIdle()
在 System.Web.Hosting.ProcessHost.IsIdle()
错误应用程序名称: w3wp.exe,版本: 7.5.7601.17514,时间戳: 0x4ce7a5f8
错误模块名称: KERNELBASE.dll,版本: 6.1.7601.19160,时间戳: 0x56bcd5c3
异常代码: 0xe0434352
错误偏移量: 0x0000c52f
错误进程 ID: 0x648
错误应用程序启动时间: 0x01d287a8fac9208a
错误应用程序路径: C:\Windows\SysWOW64\inetsrv\w3wp.exe
错误模块路径: C:\Windows\syswow64\KERNELBASE.dll
报告 ID: a4af05ca-f44f-11e6-9c01-e998e853dd81
IIS进程池异常崩溃,导致网站 service unavailable,原因排查与记录。的更多相关文章
- ActiveMQ部署步骤和后台管理网站Service Unavailable问题解决笔记
最近部署ActiveMQ的时候,发现有的服务器可以打开后台管理网址,有的服务器无法打开,Jetty报503 Service Unavailable. 搞了很久终于发现了问题,现将部署和解决过程做笔记如 ...
- ASP.NET网站报Service Unavailable错误的解决办法
现象:网站打不开,提示 service unavailable 原因:IIS资源不足,程序占用资源太多,应用程序池会被自动禁用 解决办法:重启IIS,在命令行中输入iisreset即可
- day32 信号量 事件 管道 进程池
今日主要内容: 1.管道(Pipe) 数据接收一次就没有了 2.事件(Event) 3.基于事件的进程通信 4.信号量(Semaphore) 5. 进程池(重点) 6.进程池的同步方法和异步方法 7. ...
- .net网站iis应用池完美解决方案
一.防DDOS攻击11条: 1.确保所有服务器采用最新系统,并打上安全补丁.计算机紧急响应协调中心发现,几乎每个受到DDoS攻击的系统都没有及时打上补丁. 2.确保管理员对所有主机进行检查,而不仅针对 ...
- IIS 为应用程序池提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误的解决方法
系统环境:Windows Server 2008 R2 64位, IIS 7.0 错误信息: 为应用程序池提供服务的进程在与 Windows Process Activation Service 通信 ...
- IIS进程回收导致定时器失效的一种解决办法
公司开发的网站使用的.net,网站中用到了定时器,放在Global.asax.cs文件中,但由于IIS设置了网站进程定期回收,回收后定时器也就没了.如果不让进程回收,又担心程序中有内存泄露.有人说可以 ...
- System.Threading.Tasks.Task 引起的 IIS 应用池崩溃
接口服务运行一段时间后,IIS应用池就会突然挂掉,事件查看日志,会有事件日志Event ID为5011的错误 为应用程序池“PokeIn”提供服务的进程在与 Windows Process Activ ...
- pageadmin 网站建设系统如何新建进程池并在站点中使用
1.打开iis管理界面,右键应用程序池,点击添加应用程序池,添加界面如下图,注意pageadmin cms net版本选择4.0,托管模式建议选择集成模式. 2.添加完毕后,在网站中点击对应站点,点击 ...
- ArcGIS for Android 10.1.1API 中文标注导致程序异常崩溃问题
1.前言 问题:在部分Android机型中使用ArcGIS for Android 10.1.1 API 中文标注导致程序异常崩溃. 说明:手里有两台机器一台是Nexus4,原生系统,版本4.4.4, ...
随机推荐
- Gym 100989L (DFS)
AbdelKader enjoys math. He feels very frustrated whenever he sees an incorrect equation and so he tr ...
- ctx简介
啥也不说,直接上图:
- jquery stop(true,false)的意思
stop 是jQuery中用于控制页面动画效果的方法.运行之后立刻结束当前页面上的动画效果.stop在新版jQuery中添加了2个参数:第一个参数的意思是是否清空动画序列,也就是stop的是当前元素的 ...
- CentOS7 关闭防火墙[转]
CentOS6关闭防火墙使用以下命令, /临时关闭 service iptables stop //禁止开机启动 chkconfig iptables off CentOS7中若使用同样的命令会报错, ...
- C语言编程学习:写的秒速计算四则混合运算项目
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- iperf3网络测试工具
一.简介: iperf3是一个网络速度测试工具,支持IPv4与IPv6,支持TCP.UDP.SCTP传输协议,可在Windows.Mac OS X.Linux.FreeBSD等各种平台使用,是一个简单 ...
- Python操作配置文件configparser模块
在实际的开发过程中,我们常有操作ini格式和conf格式配置文件的操作,Python为我们提供了configparser模块,方便我们对配置文件进行读写操作. config.ini配置文件内容如下: ...
- TL431的应用
TL431的应用 对于基准源,大部分人都认识TL431,因为它物美价廉,高精度,满足一般的应用场合,价格低至1毛钱,就算是ST高端品牌的也是几毛钱.这仅仅是其中一点,还有一点是因为它不仅仅可以作为基准 ...
- css3滚动条
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- “全栈2019”Java第二十一章:流程控制语句中的决策语句if
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...