IIS7.0在网站使用高峰期的时候会莫名其妙挂掉

欢欢欢欢 发表于 2018-3-25 16:56

最新进展:

由于IIS还是一直弹出警告:为应用程序池“******”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“***”。数据字段包含错误号。

所以就继续百度,发现了一篇神文:摸这里

上面说,我下面的操作全扯,都没用。上面提到了一个临时救急方案和一个永久解决方案;抱着宁可错杀,不可放过的心态,就按照上面操作做了一遍。

1,临时救急方案:

应用程序池高级设置之快速故障防护

在应用程序池->高级设置->快速故障防护 中有一个 “服务不可用”响应类型,将他的值从HttpLevel改为TcpLevel,这样应用程序池就不会挂了。

2,永久解决方案:那就是通过方法找到代码中的具体bug,然后解决掉。

经过一番猛如虎的操作,终于找到了具体的代码错误。

vs高级调试dmp文件查找代码错误

感谢那位大神 Orz!

-----------------------------------------------------------------------分 隔 线--------------------------------------------------------------------------------------------------

IIS7.0在网站使用高峰期的时候会挂掉

在“事件查看器”里面看到的错误原因如下:

应用程序池“*”将被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误.

百度了一下解决方案:摸这里或者摸这里,方法都是一致的,后者图文说明,稍微明晰一点。

不知道能不能用

5天后记录:还是会出现错误

 

另外分享一个分析查找应用程序错误的很好的方式:

查看路径:服务器管理器->诊断->事件查看器->Windows 日志->应用程序->警告和错误

点开详情,里面有详细的报错内容,一一处理掉就OK了。

windows事件查看器

 

 

后续更新:

进行了一些基本的处理之后,发现日志里面经常会出现一个这样的错误:

百度了一个通用的解决方案:摸这里

但是这个貌似貌似是一个通用的解决方案,不是针对 异常代码: 0xc00000fd 的解决方案。具有可以操作性,但是感觉作用不大。

 

 

后记:

1,异常代码: 0xc00000fd为栈溢出StackOverflowException。这种异常最常发生在函数的循环调用里。

2,要学会产生和分析dmp异常文件,对这种棘手的问题很有用。