关于asp.net:”断点目前不会被击中。

“The breakpoint will not currently be hit. No symbols have been loaded for this document.” - .pdb loaded from wrong place?

我曾经说过"断点目前不会被击中"。没有为此文档加载任何符号。"-问题并受到此线程的启发:

我启动了调试器,打开debug->window->modules,右键单击assembly->symbol load information。它指向一个奇怪的地方:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files{myProjectFolder}\8df46672\bbaeb99e\assembly\dl3\c29c5e19\aa46dcf7_10dccc01{myProject}.pdb: Symbols loaded.`

当我删除{myProjectFolder}时,它暂时解决了这个问题。但它仍然指向这个.pdb文件(vs在删除后重新创建临时文件夹)。不过,我想它应该指向bin目录中的.pdb,就像在其他程序集中那样。我该怎么解决这个问题?或者这是正常行为?

任何小费的THX…

编辑:它是一个ASP.NET项目(.NET 4.0),MVC 3。目前还没有包含COM库。我现在又删除了上面提到的目录,并再次以"断点当前不会…"结束。如果我打开模块窗口,除了app_global.asax.exot9a5x.dll之外,所有程序集的符号状态都显示"跳过加载Simbols"。

编辑2:网站配置为在本地IIS 7上运行。如果我改为Visual Studio开发服务器,调试工作正常。似乎与IIS有关?


结果发现,当我启动调试器时,我已经将配置设置为Release。当我把它改成Debug时,它会按预期工作!


IIS 7,Visual Studio 2012,发布到本地IIS并从Visual Studio调试。

出现问题的原因是Web应用程序无法从临时ASP.NET文件夹中提取PDB

在执行任何操作之前,请在IIS中重新启动Web应用程序的应用程序池


另一个解决JavaScript文件断点问题的方法是清除IE9缓存。我在更新/保存JS文件后遇到了这个问题。在进入Internet选项并删除Internet临时文件之前,Visual Studio 2012的调试器不会更新.pdb。希望这能节省一些时间。


只是一个关于我这个问题的笔记,最后看起来有点傻,但我还是在恐慌中浪费了大约一个小时。

我必须卸载nuget才能升级它。在安装了新的nuget和包之后,我得到了断点错误。

结果,在这些安装过程中,我的发布设置不知何故丢失了我运行dev项目的特定端口。在过去的4个月里,我对那个端口号已经很习惯了,我甚至都没有考虑过,但在我考虑开发机器的整个过程中,它实际上并没有在那个端口上运行,我只是在查看浏览器中已经打开的缓存页面。德!

也许,听起来很蠢,但如果它能帮助别人的话。

快乐编码K


为了在vs 2015中解决这个问题,我必须:

  • 右键单击项目,属性->生成
  • 单击高级,打开高级生成设置。
  • 将调试信息设置为"仅PDB"或"完全"
  • 当我搞砸了构建配置管理器并添加了自己的配置管理器时,问题出现了。不知何故,这改变了项目中的调试信息设置。


    我回答了一个类似的问题,可以解决你的问题。在发布设置中保留选中的"排除生成的调试符号"是一个常见错误。看我的答案:https://stackoverflow.com/a/16202843/2208689


    确保您不仅安装了VS2010,而且安装了VS2010 Service Pack 1。

    我尝试了所有张贴的解决方案,包括重新安装-即使在没有成功的新计算机上!你需要服务包。如果问题仍然存在,请尝试其他已发布的解决方案。

    来源:http://blogs.msdn.com/b/aseemb/archive/2012/09/08/not-able-to-run-unit-tests-when-visual-studio-2010-and-visual-studio-2012-are-installed-side-by-side.aspx


    为了在web.config中解决这个问题,我只需要添加EDOCX1[2]

    1
    2
      <system.web>
        <compilation targetFramework="4.0" debug="true">

    帮助我找到这个解决方案的是在调试时查看模块窗口,并看到我加载的ASP.NET DLL的模块窗口:二进制文件不是用调试信息生成的。