【问题标题】:The Breakpoint Will Not Currently Be Hit. No Symbols Have Been Loaded For This Document断点当前不会被命中。没有为此文档加载任何符号
【发布时间】:2011-08-13 09:00:07
【问题描述】:

我已经在 Google 上搜索过这个特定问题,但似乎找不到可行的解决方案。

症状:在Web应用程序项目的aspx页面的代码隐藏中添加断点后,断点在边缘显示为一个镂空的红色圆圈,圆圈右下角的黄色三角形中包含一个感叹号.将鼠标悬停在断点上时,消息“当前不会命中断点。没有为此文档加载任何符号。”

注意:我正在尝试通过“附加到 [a] 进程”(即位于远程计算机上的 w3wp.exe)来达到断点。

我尝试过的事情。

  1. 重新编译解决方案中的其他项目。
  2. 检查以确保解决方案中每个项目和网站的配置在“任何电脑”上设置为“调试”。
  3. 关闭解决方案并重新启动 Visual Studio。
  4. 重新启动 IIS。
  5. 重新附加到进程 (w3wp.exe)。

我一直在尝试使用 Internet Explorer 版本 9 和 Mozilla FireFox 版本 4 来命中断点。在每种情况下,都不会命中断点。

欢迎任何想法!谢谢!

安德鲁

【问题讨论】:

  • 在错误的目录中缓存符号会不会出现这种类型的问题?我试图通过更改 Visual Studio 中工具 -> 选项 -> 调试 -> 符号窗口中的“在此目录中缓存符号”字段来解决此问题,但问题并没有消失...

标签: asp.net debugging


【解决方案1】:

您是否正在将您的程序集部署到 GAC?如果没有,请将 .pdb 文件与 .dll 文件一起复制,将两者放在同一个 bin 目录中。调试器应该会自动拾取符号。

【讨论】:

  • 感谢您的回复!如何确定需要加载哪些程序集?断点上的弹出消息仅表明未加载任何符号,并且我正在尝试调试作为 Web 应用程序一部分的 aspx.vb 文件(Web 应用程序不创建程序集,对吗?)。此外,bin 目录中有许多 .dll 文件,但其中只有一个(这是解决方案中另一个项目的结果)具有 pdb 文件。这有意义吗?
  • Web 应用程序创建程序集,而网站则不。如果您在解决方案资源管理器中右键单击您的 Web 应用程序项目并选择“部署”,VS 将为您预先构建所有内容并将其复制到您喜欢的位置。我认为这包括 .pdb 文件。如果没有,它们可以在构建后在应用程序的 bin 目录中找到。
  • 再次感谢凯尔。我认为这可能是一个网站,而不是一个 Web 应用程序。当我在解决方案资源管理器中右键单击站点名称时,似乎没有部署选项...此外,可能值得一提的是,构建网站会导致错误“:构建(网络):启动失败监视对“[网站目录]”的更改,因为已达到网络 BIOS 命令限制。有关此错误的详细信息,请参阅 Microsoft 知识库文章 810886。Windows XP 平台不支持在 UNC 共享上托管。
  • 非常感谢您的回复,凯尔!由于您的想法,我最终学到了更多关于调试的知识,现在使用 Visual Studio 感觉更舒服了。一位同事刚刚向我指出,问题实际上是由 aspx 页面的调试页面属性设置为“false”引起的(我完全忽略了这一点:(((。)但再次感谢,您的回复是有帮助!
【解决方案2】:

这个错误的产生有很多原因,一个解决方案是:当你尝试附加进程时,它是由于不同的框架版本。更多详情请访问:https://stackoverflow.com/a/13106908/1218422

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,你猜怎么着?只需这样做:在解决方案资源管理器中,右键单击项目 -> 打包/发布设置取消选中“排除生成的调试符号”...

    也许它不能解决你的具体问题,但它肯定会让其他人免于痛苦。 我无法发布屏幕截图,因为我没有 10 名声望... :(

    和你们一样,我在谷歌和 stackoverflow 上搜索了一整天,问题就是这样。我意识到,当我点击“发布”时看到 bin 文件夹中准备发布的 PDB 文件变为 0 字节大小...

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,通过切换调试方法解决了。我单击 F5 并将 Web 项目设置为启动项目(并且在项目设置中选择了“不打开页面。等待来自外部应用程序的请求”)。

      当我使用调试菜单手动将 VS 调试器附加到 w3wp.exe 进程时,它起作用了。

      【讨论】:

        【解决方案5】:

        如果您的项目中有多个解决方案。

        右键单击您的解决方案 --> 属性

        设置为 --> 启动项目

        【讨论】:

        • 谢谢。受了几个小时的苦,你真的救了我哈哈
        【解决方案6】:

        我意识到这是一个旧线程,但没有人提到的一件事是确保在 web.config 文件中启用调试。

        【讨论】:

          【解决方案7】:

          在我的例子中,我试图调试托管在 IIS 中的 ASP.NET Core 应用程序。我注意到,当我发布应用程序(dotnet publish)时,生成的 web.config 有这行:

           <aspNetCore processPath=".\MyService.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
          

          我必须附加到 MyService.exe 而不是 w3wp.exe 来调试应用程序,即使它在 IIS 中运行。

          【讨论】:

            猜你喜欢
            • 2011-02-12
            • 2011-09-15
            • 2015-01-23
            • 2014-11-13
            • 2015-12-20
            • 2012-09-21
            • 2016-11-29
            • 2018-03-25
            • 2011-12-07
            相关资源
            最近更新 更多