昨晚十点钟的样子,网站崩溃,开始 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,原因排查与记录。的更多相关文章

  1. ActiveMQ部署步骤和后台管理网站Service Unavailable问题解决笔记

    最近部署ActiveMQ的时候,发现有的服务器可以打开后台管理网址,有的服务器无法打开,Jetty报503 Service Unavailable. 搞了很久终于发现了问题,现将部署和解决过程做笔记如 ...

  2. ASP.NET网站报Service Unavailable错误的解决办法

    现象:网站打不开,提示 service unavailable 原因:IIS资源不足,程序占用资源太多,应用程序池会被自动禁用 解决办法:重启IIS,在命令行中输入iisreset即可

  3. day32 信号量 事件 管道 进程池

    今日主要内容: 1.管道(Pipe) 数据接收一次就没有了 2.事件(Event) 3.基于事件的进程通信 4.信号量(Semaphore) 5. 进程池(重点) 6.进程池的同步方法和异步方法 7. ...

  4. .net网站iis应用池完美解决方案

    一.防DDOS攻击11条: 1.确保所有服务器采用最新系统,并打上安全补丁.计算机紧急响应协调中心发现,几乎每个受到DDoS攻击的系统都没有及时打上补丁. 2.确保管理员对所有主机进行检查,而不仅针对 ...

  5. IIS 为应用程序池提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误的解决方法

    系统环境:Windows Server 2008 R2 64位, IIS 7.0 错误信息: 为应用程序池提供服务的进程在与 Windows Process Activation Service 通信 ...

  6. IIS进程回收导致定时器失效的一种解决办法

    公司开发的网站使用的.net,网站中用到了定时器,放在Global.asax.cs文件中,但由于IIS设置了网站进程定期回收,回收后定时器也就没了.如果不让进程回收,又担心程序中有内存泄露.有人说可以 ...

  7. System.Threading.Tasks.Task 引起的 IIS 应用池崩溃

    接口服务运行一段时间后,IIS应用池就会突然挂掉,事件查看日志,会有事件日志Event ID为5011的错误 为应用程序池“PokeIn”提供服务的进程在与 Windows Process Activ ...

  8. pageadmin 网站建设系统如何新建进程池并在站点中使用

    1.打开iis管理界面,右键应用程序池,点击添加应用程序池,添加界面如下图,注意pageadmin cms net版本选择4.0,托管模式建议选择集成模式. 2.添加完毕后,在网站中点击对应站点,点击 ...

  9. ArcGIS for Android 10.1.1API 中文标注导致程序异常崩溃问题

    1.前言 问题:在部分Android机型中使用ArcGIS for Android 10.1.1 API 中文标注导致程序异常崩溃. 说明:手里有两台机器一台是Nexus4,原生系统,版本4.4.4, ...

随机推荐

  1. 10.13DOM中document--文档1找到元素的方法,还有元素内容属性

    今天讲了js的组成部分中的第二组成部分(DOM),DOM包括以下内容: window    -- 窗口                                                 ...

  2. 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)

    上一篇讲解了spring注册中心(eureka),但是存在一个单点故障的问题,一个注册中心远远无法满足实际的生产环境,那么我们需要多个注册中心进行集群,达到真正的高可用.今天我们实战来搭建一个Eure ...

  3. LightOJ 1044 Palindrome Partitioning(简单字符串DP)

    A palindrome partition is the partitioning of a string such that each separate substring is a palind ...

  4. [LeetCode 题解]: pow(x,n)

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Implement po ...

  5. [IE bug] ajax请求 304解决方案

    最近和筒子们做了个校园电台,进去之后会自动播放歌曲,每首放完了的话会随机get新的json,然后再播放下一首 整体做成了命令行的风格,在最后输入next,start等命令来操作,5+M/s校园网+W级 ...

  6. .net core i上 K8S(四).netcore程序的pod管理,重启策略与健康检查

    上一章我们已经通过yaml文件将.netcore程序跑起来了,但还有一下细节问题可以分享给大家. 1.pod管理 1.1创建pod kubectl create -f netcore-pod.yaml ...

  7. 腾讯云/阿里云/微软云安装ISO镜像系统方法

    如今云服务的盛行,我们的开发和应用中场景应用也层出不穷,有时我们需要安装自由的镜像却越来越难,甚至有些云出于安全原因自己用户安装自由镜像,那么今天将带给大家安装自有镜像的方法. 前提条件:你的现有服务 ...

  8. Windows上编译Boost

    Boost做得很好,有自己的build系统,可以几乎一键式编译,这才是尼玛世界一流质量的良心开源库啊. 将Boost 1.49.0解压到boost/boost_1_49_0里面,然后在boost目录底 ...

  9. 在线绘图网站 UML、思维导图、 流程图、 用例图等等

    https://www.processon.com/ 用我的微信登录即可 帐号是 QQ邮箱

  10. Mysql内置功能《三》视图

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...