【问题标题】:Visual Studio Debugging is stuck at "Attaching to the web server"Visual Studio 调试卡在“附加到 Web 服务器”
【发布时间】:2016-10-27 16:24:05
【问题描述】:

当我运行我的 Web API 应用程序时,我得到以下窗口:

它只是不确定地保持这种状态,直到我点击取消。

当我点击取消时,会显示此错误消息:

我尝试重新启动并运行iisreset /restart,但它没有修复它。

有什么想法可以让我的调试器再次工作吗?

注意:我的 Web API 2 项目的服务器设置设置为 Local IIS。我的服务由 IIS 托管,当我不调试时,它工作正常。

【问题讨论】:

  • 我切换到IIS Express,它开始工作了。然后我切换回来(过了一会儿)并开始工作。很奇怪。
  • 我也对符号服务器设置做了一些更改。它们似乎没有效果,但可能有助于修复。
  • 我在这里遇到了同样的问题,回收应用程序池有时会有所帮助。尝试删除“临时 ASP.NET 文件”文件夹我也遇到了加载符号的问题,但这似乎是一个更常见的问题:stackoverflow.com/questions/39321665/…

标签: visual-studio iis visual-studio-2015 iis-7.5


【解决方案1】:

一个可能的解决方法:

在工具->选项->调试中勾选“仅启用我的代码”

【讨论】:

  • 这解决了我的问题。这个想法是 Visual Studio 试图为 w3wp 加载的所有 IIS .net dll 加载调试信息。
  • 是的,这是我的问题。我一直在调试通常需要打开此功能的 Azure Functions,它阻止了 VS2017 连接到 IIS
【解决方案2】:

我刚刚对 VS 的所有设置进行了重置,它又可以正常工作了。

工具 => 导入和导出设置 => 重置所有设置

祝你好运!

【讨论】:

    【解决方案3】:

    我在 Visual Studio 2017 中遇到了这个问题,就像上一篇文章一样,我勾选了调试选项“启用 .NET Framework 源步进”。取消勾选解决了这个问题。

    【讨论】:

    • 工作就像一个魅力!谢谢!
    • 谢谢。我遇到了类似的问题,发现取消选中调试选项下的“启用源服务器支持”选项对我有用。
    【解决方案4】:

    正如我在遇到同样问题之前评论过的那样,但我现在找出了原因并找到了解决方案。

    我上周刚买了一台新机器(这个问题实际上是原因之一),过了一段时间我遇到了同样的问题,无法调试我的项目。幸运的是,因为我正在一一安装所有更新,所以我能够确定它何时开始发生。

    Microsoft ASP.NET and Web Tools”扩展的最新更新似乎破坏了一些东西。

    遗憾的是,卸载或恢复 Web 工具扩展并不容易:Remove this extension by going to the Windows control panel and modifying your Visual Studio installation。我不得不完全删除 Visual Studio 并重新安装它(修复没有成功)。 您可以根据需要更新和安装所有扩展程序,只需确保不更新 Web 工具扩展程序

    我在我的旧机器上进行了测试,它也成功了。

    我还在GitHub 上创建了一个问题,因为在解决此问题之前我不会更新扩展程序,如果有人有其他信息,请将其添加到问题中。

    【讨论】:

      【解决方案5】:

      在 Visual Studio 2015 中,转到工具 -> 选项 -> 调试并取消选择“启用 .NET Framework 源单步执行”。这可能与加载符号有关,因此如果您想保留调试 .NET Framework 源代码的能力,那么在网上搜索如何清除符号缓存、预加载或设置符号服务器可能会有所帮助,等等。

      【讨论】:

        【解决方案6】:

        在 Visual Studio 2017 中,我刚刚重新启动机器并运行解决方案,没有打开其他窗口,甚至没有打开浏览器,虽然 Visual Studio 花了很长时间打开(一个解决方案中有 30 多个项目)问题没有再次出现。

        【讨论】:

          【解决方案7】:

          我在 VS 2017 中遇到了同样的问题,取消选中“本机代码”就可以解决问题。不知道为什么要检查它。

          【讨论】:

            【解决方案8】:

            在我的例子中,我设置了 Debugging ->Symbols -> To "Load Only Specified Modules" 以包含符号,在我的例子中,是一些内部 NuGet 包的 devops 符号源

            Options>Debugging>Symbols>Load Only Specified Modules

            通过选中“始终加载位于模块旁边的符号”选项,该设置不会与您自己的代码在 VS 中的常规/经典调试相混淆

            这样,符号仍在需要的地方加载,Visual Studio 不会尝试为 w3wp 加载的所有 IIS .net dll 加载调试信息

            或者,它也可以配置为不为 microsoft.*.dll 加载符号,它也可以工作。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-03-27
              • 1970-01-01
              • 2013-08-28
              • 1970-01-01
              • 1970-01-01
              • 2020-03-08
              • 2011-12-19
              • 1970-01-01
              相关资源
              最近更新 更多