• 博客园Blog程序遇到的奇怪问题


         博客园的Blog程序升级到ASP.NET 2.0之后,一直被这样的问题困扰:
         出现问题时,从客户端看,浏览器处于连接状态,却一直得不到服务器的响应。从服务器看,CPU占用很低,不超过10%。我对这种现象的理解是:IIS接收了请求并转发给ASP.NET 2.0进程处理,而ASP.NET 2.0进程处于不工作状态,不对请求作出响应。
         IIS 6的应用程序池每隔30秒(默认设置)会检查工作者进程的健康状况,发现了ASP.NET 2.0进程的这种异常情况后,立即关闭该进程,建立创新的进程,新的进程忙碌一阵后,系统恢复正常。
         事件日志中的相关信息:
         系统日志(Event ID: 1010):
         A process serving application pool 'APP_CNBlogs' failed to respond to a ping. The process id was '3520'.
         说明:这是应用程序池检查工作者进程的健康状况时记录的信息。
         该问题的发生没有什么规律,次数不定,访问量大时,发生的次数多一点,更新dll文件后,发生的概率也比较高。
         这种不工作状态是因为程序执行中发生了死锁,还是ASP.NET  2.0引擎发现了异常,主动退出了运行,ASP.NET 2.0有这种特性,微软的文档中说如果在ASP.NET 2.0程序运行中发生未处理异常,程序会退出运行,我已经针对这种情况按照微软的文档进行了处理,问题依然存在。我发觉即使了发生未处理异常,情况并不像文档中所说的那样程序会退出,ASP.NET 2.0会将异常记入事件日志,程序照常运行。
         到现在我也没找到问题的原因,在出现问题时,ASP.NET 2.0运行时没有在事件日志中记录一些相关信息,我也没想到什么办法能捕捉到发生问题时的更多信息,在程序中也没找到引起进程死锁的代码。
         是博客园程序的Bug还是ASP.NET 2.0的Bug?  目前还没找到问题的线索,今天写出来,一是希望了解有没有朋友遇到过这个问题,二是希望有经验的朋友提供一些建议。
         相关文章:为什么应用程序池总是崩溃(Crash)
              

  • 相关阅读:
    Spring Boot应用程序属性
    Spring Boot Bean和依赖注入
    Spring Boot构建系统
    Spring Boot Tomcat部署
    Spring Boot引导过程
    Spring Boot快速入门
    Spring Boot简介
    eclipse中将项目打包成jar的两种方法,及其问题与解决方法
    配置Zuul代理下游的认证
    WireMock和Spring MVC模拟器
  • 原文地址:https://www.cnblogs.com/dudu/p/472162.html
Copyright © 2020-2023  润新知