我遇到了一个特别讨厌的错误,其中 ASP.NET 网站试图调用 WCF 服务方法,该方法将 IIS 送入死亡螺旋……最终导致相关的应用程序池崩溃。它永远不会到达输出未处理异常的 log4net 代码。
我正在看着 w3wp.exe 进程启动并死掉,所以我想我会使用SysInternals 的 ProcDump使用以下命令在终止时获取一个转储文件:
procdump -e -t -ma <PID> aspnet.dmp
这给了我一个 minidump 文件,我可以在 VS2010 中打开它,它告诉我堆信息是存在的。令人兴奋的是:
因此,此时我尝试设置符号路径,即该特定网站的 bin 文件夹。我已经从相应的服务器上复制了它。但是,我仍然只能选择 Debug with Native Only ,当我这样做时,它找不到任何适当的符号。
这是我的 PDB 位置设置:
我不确定这是否是因为调用堆栈似乎停止在 Windows DLL 中的某处......?这是调用堆栈窗口的屏幕。
无论如何,我的最终问题是我是否正在遵循适当的路径来查找此异常的来源,如果是,我错过了什么?它似乎在非托管代码中,但我仍然希望在一切爆炸之前看到最后一个托管调用。
另外,如果有帮助,Web服务器是Win2003 x86,我的PC是Win7 x64。
谢谢!