在回收时将调试器附加到应用程序池

Attach debugger to app pool on recycle

我需要调试在特定应用程序池进程上加载的 dll。我正在使用 WinDbg,到目前为止我已经成功找到了正确的 w3wp.exe 进程。问题是,应用程序池会自行回收,有时在它到达我想要找到的东西之前(一个非常难以捉摸的第二次机会例外)。那么,我要重新开始了。
如何将 WinDbg 配置为在每次启动时自动附加到连接到特定应用程序池的 w3wp.exe 进程?
另一种解决方案是获取故障转储 - 我尝试为此使用 ADPlus.exe 但它也需要在一个进程上启动并且我没有找到一种方法来自动重新 运行 它仅在我需要的过程以及每次启动时。

所以总而言之,我需要一种方法来从连接到特定 IIS 应用程序池的 w3wp.exe 进程获取故障转储,当它在第二次机会异常时崩溃,而该进程偶尔会重新启动一次(没有足够的时间让我每次 运行 手动调试工具)。

最终,我发现了这个很棒的工具,叫做 DebugDiag,它是 Microsoft 的官方工具。它有一个很好的界面,允许收集某些事件的转储,例如异常,并创建非常有用的日志。
最重要的是 - 它有一个专门用于 IIS 调试的特殊部分,它允许我 select 我感兴趣的应用程序池。
下载可用 here