0

服务器:Windows 2012r2 Debug Diagnostic Tool v2.1 update 1

调试器附加到应用程序池。我已经确认它是该站点的正确池。池崩溃,但是永远不会生成转储文件。

“由于为该应用程序池提供服务的进程中出现一系列故障,应用程序池 '' 将被自动禁用。”

该规则只是简单地设置为查看应用程序池,而不是捕获第一次机会异常。我试过几次删除并重新添加它,但它永远不会生成转储。

我检查了它生成的调试日志,这是在池崩溃之前生成的最后一个异常:

警告:帧 IP 不在任何已知模块中。以下框架可能是错误的。0x0 0x0 0x0

编辑:想要添加转储确实为第一次机会异常生成。当试图抓住第二次机会或实际导致崩溃的机会时,这似乎只是一个问题。

编辑 2:每个请求的调试日志之一的最后几行:

[9/16/2015 7:21:31 PM]
  Exception 0XC00000FD on thread 154788.  DetailID = 48
  Thread created. New thread system id - System ID: 85156
  Thread exited. Exiting thread system id - System ID: 85156. Exit code - 0x00000000
  Thread exited. Exiting thread system id - System ID: 326816. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 41368. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 213340. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 300224. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 51008. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 45288. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 75176. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 143512. Exit code - 0x800703e9
  Thread exited. Exiting thread system id - System ID: 68504. Exit code - 0x800703e9
....... (goes on like this for awhile)
Process exited. Exit code - 0x800703e9

异常与此相关

DetailID = 48
    Count:    1
    Exception #:  0XC00000FD
    Stack:        

        WARNING: Frame IP not in any known module. Following frames may be wrong.
        0x0
        0x0
        0x0
        0x0
        0x0
4

1 回答 1

4

默认情况下,调试诊断崩溃规则仅对所有未处理的第二次机会异常进行转储(如果您创建崩溃规则并将所有设置保留为默认值),因此如果未生成转储,则该进程不会因第二次机会异常而崩溃。

有时 CLR 在遇到致命异常时会调用 TerminateProcess 函数(堆栈溢出就是其中之一)。因此,如果您的进程因此类异常而崩溃,那么您将不会使用默认规则获得转储,您应该更改规则以包含默认断点列表中存在的 ntdll terminateprocess 断点。启用此断点的不良影响是,现在即使是安全退出(如工作进程空闲关闭、回收等),您也会得到转储,因此您需要检查记录的事件的时间戳并将转储文件与之匹配...

如果您粘贴您在 debugdiag 为 w3wp.txt 生成的文本文件中看到的内容的最后 5-10 行,将会有所帮助。

编辑:添加调用堆栈,正如我在调试器中看到的那样......

0:065> kL 50
# ChildEBP RetAddr  
00 1a8f291c 74b80947 ntdll!NtTerminateProcess
01 1a8f292c 73e0843d KERNELBASE!TerminateProcess+0x23
02 1a8f29b8 73e07d03 clr!EEPolicy::HandleFatalStackOverflow+0x1ba
03 1a8f29e8 73dca49f clr!EEPolicy::HandleStackOverflow+0x1ac
04 1a8f2a0c 76f500b1 clr!COMPlusFrameHandler+0x9b
05 1a8f2a30 76f50083 ntdll!ExecuteHandler2+0x26
06 1a8f2afc 76f507ff ntdll!ExecuteHandler+0x24
07 1a8f2afc 17732c83 ntdll!KiUserExceptionDispatcher+0xf
08 1a8f309c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x1b
09 1a8f3184 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0a 1a8f326c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0b 1a8f3354 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0c 1a8f343c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0d 1a8f3524 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0e 1a8f360c 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
0f 1a8f36f4 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
10 1a8f37dc 17733104 App_Web_lotdetail_aspx_cdcab7d2_hoxucj_s!Unknown+0x49c
于 2015-09-22T15:00:08.130 回答