Visual Studio调试器挂起,无法从w3wp分离

本文关键字:w3wp 分离 Studio 调试器 挂起 Visual | 更新日期: 2023-09-27 18:02:35

我继承了一个庞大的、老化的代码库,我正在经历一种我从未见过的行为。有时,在调试时,如果我在Watch窗口中浏览对象或集合,调试器将挂起。它始终是相同的位置,相同的对象类型,等等。大约15秒后,Visual Studio返回给我,但调试器不再工作,直到我重新启动调试会话。当我停止调试器时,我得到:

"Cannot detach from one or more processes: [6088] w3wp.exe: 
All outstanding func-evals have not completed, detaching is not allowed 
at this time."

我必须终止进程才能继续。

我已经读了足够多的关于这个问题的文章,可以推测它与线程有关,但这超出了我的理解范围。我想知道是否有人遇到过这种情况,如何找出具体的问题,最重要的是如何预防它。我甚至会采取一种解决方案,阻止调试器沿着该分支运行,以防止破坏我的调试器,因为它非常烦人。

欢迎提出任何建议。由于工作要求,我不能分享太多代码。

Visual Studio调试器挂起,无法从w3wp分离

这很可能是由你试图调用的代码中的无限递归/循环引起的,但是你可以通过在这里的命名空间中使用一些"Debugger…"属性来绕过这个问题: