如何查看哪个请求导致 IIS7 由于堆栈溢出而重置?

Ben*_*man 6 iis-7 logging

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

Tri*_*anK 1

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

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

简而言之:

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