在 VS2010 中停止在 IIS 上调试 Web 应用程序需要很长时间

Posted

技术标签:

【中文标题】在 VS2010 中停止在 IIS 上调试 Web 应用程序需要很长时间【英文标题】:Stop debugging web application on IIS in VS2010 takes long 【发布时间】:2011-01-03 13:15:03 【问题描述】:

每当我停止调试 ASP.NET IIS Web 应用程序时,VS2010 似乎需要很长时间才能再次响应(2 或 3 分钟)。当我关闭 Internet Explorer 9(这会停止调试会话)、停止在 VS 中调试(这会关闭浏览器)或当我从调试菜单中分离调试器(这会使浏览器保持打开状态)时,会发生这种情况。

在此期间,我的 devenv.exe 的 CPU 时间上升了 25%。我使用专业版(没有智能跟踪)。当我关闭浏览器时,无需调试即可启动。我安装了一些加载项和扩展,例如 TestDriven.NET、Resharper、PowerCommands、Productivity Power Tools、VisualSVN……

有什么想法会导致这个烦人的问题吗?我可以尝试禁用哪些功能?

【问题讨论】:

你有一个四核(或双+HT)CPU,对吧?所以 25% 真的是单核的 100% 吗?澄清一下:这是调试 IIS,而不是 Cassini(ASP.NET Web 服务器)? 抱歉没有注意到,四核确实在 Windows 7 上使用 IIS 7 调试... 【参考方案1】:

您需要通过在 safe mode 中运行 Visual Studio 来缩小范围。这将禁用所有第 3 方扩展。

如果问题消失了,则说明您的某个扩展程序存在问题。尝试一次启用它们。

如果问题没有消失,那就是 VS2010 的问题。在 Connect 上提交错误。另外,请尝试预发布的 VS2010 SP1,看看它是否已经修复。

【讨论】:

奇怪,安全模式运行顺畅,所以我禁用了所有扩展和加载项,并按照你说的尝试。现在一切都再次启用,问题消失了...... 禁用扩展并重新启用它可能会导致它丢弃缓存的元数据或其他内容。问题可能会再次出现。老实说,像我一样热爱它,我的钱都花在了 ReSharper 上。 我就是这么想的。也许偶尔从 /safemode 开始也可以解决这个问题?【参考方案2】:

您是否尝试过关闭时钟附近的(asp.net Web 服务器)托盘图标?通常,网络服务器会导致 Visual Studio 挂起。

【讨论】:

我没有使用内置的 Web 开发服务器(又名 WebDev.WebServer.exe),而是使用 IIS 7 进行开发和调试。原因是我使用了一个 WCF“后端”,我还需要调试它,只有在一个进程中同时拥有“前端”和“后端”时才会发生这种情况,所以我需要 IIS 来共享一个应用程序池。即使我调用 iisreset.exe,程序仍然没有响应。此外,高 CPU 时间让我相信 VS 实际上是在做某事而不是等待超时。但这可能是一个矫枉过正的操作......

以上是关于在 VS2010 中停止在 IIS 上调试 Web 应用程序需要很长时间的主要内容,如果未能解决你的问题,请参考以下文章

“无法在 Web 服务器上开始调试” MSVSMON.EXE 无法启动。 VS2010 错误

Visual Studio 2013 如何在停止调试Web程序后阻止IIS Express关闭

vs2005 开发的WEB项目如何发布到IIS上

vs远程调试iis

IIS Express加入MIME映射

vs2005 web服务