1

因此,我一直在试图弄清楚为什么应用程序池会时不时地崩溃,并且我已经确定了cau似乎是导致问题的页面。

当我在浏览器中打开该站点,并访问运输购物车页面(将东西添加到购物车后),整个浏览器变得无响应,我打开任务管理器,看到 IE(浏览器)正在使用 99% 的 CPU,所以我右键单击 > 创建 DUMP > 尝试读取 DUMP 但 WinDBG 似乎不喜欢 DMP 文件;不会读它们。

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

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

4

1 回答 1

2

如果浏览器变得无响应并占用 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 似乎是一个特别好的候选者。
于 2012-11-25T10:35:14.930 回答