无法调试 – “断点当前不会被命中。 没有为此文档加载任何符号“

我在主题行中收到错误。 我在服务器2k3sp2上运行vs2k8。 我已经尝试删除pdbs,缓存目录,validation是否在特定页面上设置了调试。 有趣的是其他页面调试就好了。 就在我去这一页的时候。 必须是配置问题,但页面指令如下所示:

print(“”);

我还注意到,在调试时,如果我打开模块窗口,几乎所有符号都显示“Symbol not loaded”状态。 但是,经过下面msdn文章的更多研究,其中一篇MSFTpost说,如果它是核心.net dll,它不会加载符号,所以我不担心。 一些微软模块(如System.Enterpricesservices.wrapper.dll)显示一个惊叹号,消息“模块未加载到默认加载地址”。 不知道为什么那个dll在那里,因为我不知道有任何调用它。

这是我尝试过的东西:

在VS.Net 2005中调试时,断点没有连接

http://social.msdn.microsoft.com/Forums/en-US/vbide/thread/557fdedb-268e-48a8-9944-29b2b4e0dec2/#page:3

法案

我遇到这样的问题的唯一一次是,如果我在项目处于发布模式时尝试调试。

当我使用两个单独的网站“网站”时,我通常会看到此错误弹出。 我有一个Web前端和一个Web服务后端。 如果开发服务器没有运行代码文件的’site’,那么您将收到该错误消息。

这可能不是你的问题,但这通常是我看到错误消息时的情况。 如果调试器未附加到正确的进程,您可以执行的另一件事是Debug – > Attach to Process。

放置内联break语句以确保您实际运行代码。 如果您没有停止,那么您尝试调试的代码可能就是没有运行,或者您没有使用托管调试器进行调试。

如果你确实停止但找不到源,那么你可能没有模块的pdb。 检查callstack窗口的顶部以查看哪个程序集包含您停止的方法。这是您需要pdb的程序集。 模块窗口将显示该程序集的磁盘上的位置。 命令行工具“dumpbin -headers assembly.dll”将转储PE头。 检查调试目录以查看构建程序集时pdb的放置位置。 如果调试目录不存在,则构建程序集时没有调试信息。 如果是这种情况,那么您的问题是确定为什么在没有调试信息的情况下构建特定程序集。 如果它确实有调试信息并且存在pdb,但是没有加载,那么这意味着调试器找不到pdb,你应该查看tools \ options \ debug \ symbol设置。 或者pdb和程序集不匹配。 如果时间戳不在1秒内,那么它们肯定不匹配。

如果以上内容无效,请通过更多信息进行更新。

通常,当VS用于调试的.pdb文件与代码实际执行的文件不同时,会发生这种情况。 也就是说,如果您对程序集进行了更改。
另外,请确保在web.config中有 。 我不知道它是否与页面指令有任何关系,但这通常对我来说是什么:)

我同意当我有多个不同步的程序集和/或一个或多个pdbs与源不匹配时,我已经看到了这一点。 在我的情况下,这是因为我对我的版本控制软件(ClearCase)感到奇怪,而我实际上并没有编译我认为的那样。

如果你有一个“WebSite”项目,而不是“WebApplication”,我发现重叠的代码文件类可能会导致问题。 有几种方法可以实现。 不幸的是,Visual Studio似乎仍然没有错误地编译解决方案/项目。

  1. 在网站上的文件夹之间移动页面。
  2. 移动页面后的源控件合并可能导致页面被复制,并且Visual Studio在调试期间会混淆。
  3. 复制和粘贴现有页面(模板)也可能导致内存中的这种情况。

解决问题我

  1. 在解决方案中搜索重复项的“Class TheProblemPageCodeSymbolIssue”。
  2. 重新考虑了类名后面的重复代码并测试了所有这些页面,以确保我可以使用调试断点。

希望有所帮助。