我如何才能知道哪个请求由于 stackoverflow 而导致 IIS7 重置?

我如何才能知道哪个请求由于 stackoverflow 而导致 IIS7 重置?

我的 IIS7 网络服务器每秒收到数百个请求,并且在已知时间,stackoverflow 导致 IIS7 回收应用程序池。如何查看哪个请求包含 stackoverflow,以及理想情况下当 IIS 决定终止应用程序池时该请求中的堆栈跟踪是什么?

答案1

您怎么知道这是堆栈溢出?无论报告什么,似乎都是在报告进程崩溃了。

为下一次做好准备 - 针对该进程运行 DebugDiag 1.2 或崩溃模式调试器,并设置在崩溃时进行内存转储。

简而言之:

  1. 计算出当前实例的应用程序池的 PID(您可能希望关闭回收,以便它不会不断变化;或者使用 DebugDiag,它可以跨 PID 定位应用程序池)
  2. ADPLUS / PROCDUMP -P PID -CRASH(或使用该应用程序池的崩溃规则运行 DebugDiag)
  3. 获取转储文件,并将其输入到 DebugDiag
  4. 查找特别长的线程堆栈

相关内容