这2个月发布了一个新站点,从发布以来,每天都会出现几次w3wp崩溃的应用程序日志,具体在系统的事件查看器里,
应用程序日志:
Faulting application w3wp.exe, version 6.0.3790.3959, stamp 45d6968e, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51ee2, debug? 0, fault address 0x0000bef7.同时系统日志也紧跟着会有一条:
为应用程序池 'Site2' 提供服务的进程无法响应 Ping。进程 ID 是 '5720'。由于程序比较大,一行行去看代码,问题在哪,不太现实
而抓iis日志,在那个时间点,请求也有好几百个,不好确定是不是某个请求造成的可以确定的是这个Site2造成的问题,因为同一服务器上还有别的站点也在提供服务,而且访问量比Site2还大,但是应用程序池的配置是一样的另外,比较奇怪的是w3wp出错,只有Site2这个站点重启了(有Application_Start日志),别的站点没有受到影响请大侠指教如何定位问题点,搜索好久了,都是说如何配置程序池,没有如何排查程序问题的

解决方案 »

  1.   

    Server2003的IIS6吧?
    每个进程池独立,你的程序挂了,也就只有一个进程池挂了。
    我以前为了避免类似找不到问题,都在页面级和应用程序级异常内将详细信息写入日志。配置文件里有日志级别来设置异常是否输出。站点重启其实就是应用程序崩溃了,再次访问的时候IIS将进程重启,但是也不保证程序能够稳定运行。注意下运行过程中内存是否持续增长? 
    在Application_Error捕获下异常看看以前出现类似问题通常是程序调用的C++的dll内存泄露了...查起来令人崩溃
      

  2.   

    Application_Error日志全部作了记录,在崩溃时间点,没有任何错误,Application_End日志也没有
    只有Application_Start日志,上周五在生产机上用DebugDiag抓Crash,结果抓的过程中,iis整个挂了,不敢再挂
    DebugDiag抓IIS Hang到是没问题,抓了4个小时,没有发现崩溃,刚关闭DebugDiag,崩溃就来了,汗
    生产机又无法时刻去调试
    真是崩溃啊,只能程序一点点检查中
      

  3.   

    昨天把程序中的命中率很低的HttpCache的数据删除,不再加入到Cache里,以及其它一些内存占用的修改
    截止到现在,1天过去了,还没有再出现错误