应用程序池在站点上崩溃



所以我一直在试图弄清楚为什么应用程序池不时崩溃,我已经确定了是因为导致问题的页面。

当我在浏览器中打开网站,并访问Shipping cart页面(在向购物车添加内容后),整个浏览器都没有响应,我打开任务管理器,看到IE(浏览器)使用了99%的CPU,所以我右键单击>创建DUMP>尝试读取DUMP,但WinDBG似乎不喜欢DMP文件;不会读它们。

所以我继续前进,试着在没有转储文件的情况下解决问题。我启动Visual Studio,打开有问题的网站,然后按照相同的过程(将内容添加到购物车,然后访问购物车页面)。令我惊讶的是,一切都很好。

不知道现在该怎么办。有什么建议吗?当一切都在本地完美运行时,以及当一切过去都在网上完美运行,但现在不再在网上运行时,你将如何确定挂起的原因?

如果浏览器没有响应并占用99%的CPU,那就是客户端问题;它很可能与IIS或服务器端代码无关。

可能是你的页面中有一些javascript有问题,进入了繁忙的循环吗?我认为值得一试(使用IE的开发工具(F12)、Visual Studio的javascript调试功能,或者将FireFox与FireBug结合使用)。

编辑让我感到奇怪的是,你的AppPool崩溃了,这样做会导致web浏览器变得没有响应。对于无响应,你真的意味着浏览器本身停止工作吗(即,导航回一个页面或转到另一个url(如google.com)是不可能的吗?)

无论如何,如果你认为问题发生在服务器端,你可以尝试以下方法(按照增加工作量的顺序):

  • AppPool崩溃后,请检查windows事件日志(从命令提示符下运行"eventvwr"),并查看提供的信息
  • 查看IIS日志(你可能必须先打开它),看看它是否包含任何奇怪的请求模式,比如你的页面被锤击)
  • 从IIS运行您的网站,但将Visual Studio中的调试器(在"工具"下,"附加到进程-仅包括托管代码")附加到IIS工作进程(通常为w3wp.exe)。如果您的页面引发异常,VS应该能够捕获它
  • 在您的页面中添加更多跟踪,Global.asax的Application_Error似乎是一个特别好的候选者

最新更新