aspnet_isapi.dll' 报告它自身有问题的原因


今天系统突然折了,但是问题在哪呢?很费周折。

  错误信息:

  ISAPI'c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll'报告它自身有问题,原因如下:'检测到死锁'。

  有关更多信息,请参阅在http://go.microsoft.com/fwlink/events.asp的帮助和支持中心。

  症状:系统总是不稳定,一会能用,一会儿又死掉了。

  分析过程:

  这个版本已经跑了很长时间,估计不是程序死锁的问题。倒底是什么问题呢。应该是外部环境的问题。由于错误信息比较的抽象,之前没有遇到过,所以google了下,但是好像遇到此问题的人很少,不过在博客园还是遇到一位受到同样遭遇的人,但是并没有一种很好的解决方案,也没有确切的指出问题的症结。所以只有自己进行一些检查。

  <1>查看最近的系统更新,看是否有关于IIS之类的更新

  <2>查看系统的杀毒软件的日志文件,看是否收到了攻击

  但是,检查上述两个步骤,并没有发现问题。看系统是有一些更新,迫于无奈,只好重启系统试一下(也顺便重启IIS)。重启之后,问题依旧。

  观察进程管理器,发现:

  W3WP的线程数,一直在变化,一会增加一个高峰值,重新增加一个W3WP进程,之前的进程过一会就自动关闭,一会又恢复正常。

  这说明网站,在不断的死亡、重启。到底是哪里的问题呢?应该还是系统自己的问题了。但是它自身的版本并没有问题,为了确定这一点,我也试了之前稳定的版本,同样出现此类问题。最后,是否是系统中调用的第三方服务,将整个系统给拖死了呢?

  罪魁祸首:经过检查,果然是由于程序中实时调用了一个服务,由于此服务已经停止,请求无果,出现了死锁。

  教训:

  <1>最大大限度保证系统与第三方服务的稳定、安全,并在请求过程中做超时判断、消息分级处理。

  <2>遇到问题,首先应全面分析系统的问题可能性,因为系统本身的运行环境一般都是固定不变的,出现问题的可能性很小。

  有的时候在写程序的时候,如果出了问题,首先应该怀疑自己的思路、代码哪里出了问题,而不应该去怪罪IDE或者OS出了什么BUG。这样你就少走很多弯路。



相关阅读:
如何更好的利用Oracle全文检索
PHP里如何实现汉字转区位码
Windows Server 2008 十项重要新技术
21个神奇的CSS技巧
使用XML/A 创建数据挖掘查询
完全了解PHP语言
正规化的表格设计能提升应用性能(一)
Service Unavailable错误的解决
linux下讲解MySQL安装与登录方法
Web服务器控件:RadioButtonList控件
网络通讯--tty(teletypewriter)
将一台成员服务器升为域控制器三(组图)
网页排版经常用到的5个CSS基础
CSS Frameworks的概念
快速导航

Copyright © 2016 phpStudy |