断点当前不会被命中。没有为此文档加载任何符号

Posted

技术标签:

【中文标题】断点当前不会被命中。没有为此文档加载任何符号【英文标题】: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)来达到断点。

我尝试过的事情。

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

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

欢迎任何想法!谢谢!

安德鲁

【问题讨论】:

在错误的目录中缓存符号会不会出现这种类型的问题?我试图通过更改 Visual Studio 中工具 -> 选项 -> 调试 -> 符号窗口中的“在此目录中缓存符号”字段来解决此问题,但问题并没有消失... 【参考方案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://***.com/a/13106908/1218422

【讨论】:

【参考方案3】:

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

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

和你们一样,我在谷歌和 *** 上搜索了一整天,问题就是这样。我意识到,当我点击“发布”时看到 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 中运行。

【讨论】:

以上是关于断点当前不会被命中。没有为此文档加载任何符号的主要内容,如果未能解决你的问题,请参考以下文章

VS 2010 远程调试器断点当前不会被命中。没有为此文档加载任何符号

如何解决“当前不会命中断点。没有为此文档加载任何符号。”警告?

“断点目前不会被击中。没有为此文档加载任何符号。” - .pdb 从错误的地方加载?

目前不会命中 VS 2008 断点。没有为此文档加载任何符号

当前不会命中断点:此文档未加载任何符号

远程调试 .Net 应用程序“没有为此文档加载任何符号”时出现问题。