应用程序池在现场崩溃

时间:2012-11-25 10:08:25

标签: c# asp.net .net iis

所以我一直试图弄清楚为什么应用程序池时不时地崩溃,而且我已经确定的页面似乎导致了这个问题。

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

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

不确定现在该怎么做。有什么建议?当一切运行完美,本地 - 以及当所有东西过去完全在线运行,但不再在网上运行良好时,你如何确定悬挂的原因?

1 个答案:

答案 0 :(得分:2)

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

可能是你的页面中有一些javascript是错误的,并进入一个繁忙的循环?我认为值得尝试一下(使用IE的开发人员工具(F12),Visual Studio的javascript调试功能,或FireFox与FireBug结合使用)。

修改 令我感到奇怪的是,你的AppPool崩溃,并且这样做会导致网络浏览器无响应。如果没有响应,您是否真的意味着浏览器本身停止工作(即导航页面或转到另一个URL,例如google.com是不可能的?)

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

  • AppPool崩溃后,检查Windows事件日志(从命令提示符运行'eventvwr')并查看提供给您的信息。
  • 查看IIS日志(您可能先have to turn it on),查看它是否包含任何奇怪的请求模式,例如您的网页受到重创)
  • 从IIS运行您的网站,但是将Visual Studio中的调试器(在工具下,附加到进程 - 仅包含托管代码)附加到IIS工作进程(通常是w3wp.exe)。如果您的页面抛出异常,VS应该能够捕获它。
  • 向您的网页添加更多跟踪,Global.asax的Application_Error似乎是一个特别好的候选人。