在我们的应用程序池回收后,我们的 WCF 服务在访问时抛出 FileLoadException。回收应用程序池有帮助。有时错误会在没有回收的情况下消失。我问了我在这里问的第一个问题:FileLoadException when access WCF service
由于我们没有其他想法如何分析这个问题,我们希望获得包含该异常的内存转储。
但我不知道如何配置 adplus 或 debugdiag 以自动附加到该新进程(回收后)并在特定异常时生成故障转储。这甚至可能吗?
在我们的应用程序池回收后,我们的 WCF 服务在访问时抛出 FileLoadException。回收应用程序池有帮助。有时错误会在没有回收的情况下消失。我问了我在这里问的第一个问题:FileLoadException when access WCF service
由于我们没有其他想法如何分析这个问题,我们希望获得包含该异常的内存转储。
但我不知道如何配置 adplus 或 debugdiag 以自动附加到该新进程(回收后)并在特定异常时生成故障转储。这甚至可能吗?
您可以使用Procdump
在第一次机会异常时进行完整的内存转储:
procdump -ma -e 1 -f FileLoadException w3wp.exe
但不幸的是,您可能必须手动附加它,因为我不知道任何开箱即用的解决方案。我们有时会使用 PowerShell 脚本来执行此类任务。
使用WinDbg,附加它并通过菜单“调试>事件过滤器...”添加事件过滤器单击“添加..”,错误代码应0x80131621
根据MSDN页面,但可能会有所不同,这可能是一个问题和然后输入gc
。否则,我希望 WinDbg 在发生异常时中断,然后您可以进行转储:
.dump /ma c:\dumps\mycrash.dmp
您可能已经查看了有关如何调试此问题的以下页面:http: //blogs.msdn.com/b/suzcook/archive/2003/05/29/57120.aspx和http://bradwilson.typepad.com /blog/2007/12/we-were-crashin.html,相关的 SO 帖子