断点绑定失败-VisualStudio2015

我刚刚从 VisualStudio2013升级到2015,现在遇到了断点的问题。

如果我在调试时设置了一个断点,那么我就会得到这个错误:

断点绑定失败。

任何帮助我都会很感激,我已经准备好放弃2015年,回到过去。

82683 次浏览

我有个问题。我运行了一个性能分析会话,它修改了带有性能监视器设置的 Web.config文件:

<appSettings>
<add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools\vsinstr.exe"/>
</appSettings>




<compilation debug="true" targetFramework="4.5"
assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
...
</compilation>




<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.VisualStudio.Enterprise.AspNetHelper" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<codeBase version="16.0.0.0" href="file:///D:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/Microsoft.VisualStudio.Enterprise.AspNetHelper.DLL"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="VsWebSite.Interop" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<codeBase version="8.0.0.0" href="file:///D:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/VsWebSite.Interop.DLL"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

这破坏了我在断点停止的能力。当我恢复到原来的 Web.config (删除了 Performance Profiler 设置)时,断点又开始工作了。

这可能看起来微不足道,但是经过对您提到的相同问题的大量讨论之后,我发现在尝试调试时,我的构建被设置为“发布”而不是“调试”。.重新构建“ debug”解决方案修复了它,我可以像平常一样设置断点

我遇到过类似的问题,断点无法绑定,以及某些局部变量没有在“局部变量”窗口中计算。最后修复它的方法是在 Options-> Debug-> General 选项卡中启用“ Suppress JIT Optimation on module load (Managed only)”选项。一旦我设置它能够绑定没有问题。

我也有同样的问题。

我解决了在项目属性 Build 选项卡中禁用“优化代码”选项的问题。

我昨天也遇到了同样的问题,我使用了“清洁解决方案”的特性,它起到了作用。

我在我的解决方案上运行性能,然后把它添加到我的 web.config 中

<compilation debug="true" targetFramework="4.5" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

assemblyPostProcessorType就是问题所在,我删除了它,这就解决了我的问题

我也有同样的问题,但解决方法不同。 请注意,我更新到 VS2015更新1,问题仍然存在。

在以前版本的 VS 启动调试自动触发一个构建在调试模式。但与 VS2015它不。

因此,如果上一次构建处于发布模式,并尝试调试,断点将无法工作。

你必须手动 首先在调试模式下构建,然后开始调试。

我今天遇到了绑定断点错误。

如果所有的调试配置都不正确,则无法在下面的操作中修复问题。

  1. 清洁工程
  2. 如果输出路径与 bin 文件夹不同,则将其替换为 bin 文件夹(这是最重要的规则)
  3. 重建

也许这个解决方案对某人有帮助。

解决方案是禁用设计优化。

Project Properties> Build> Advanced Compile Options> Enable Optimizations

我没有改变“优化”设置,但基于这里的其他答案,我

  1. 将解决方案资源管理器设置为显示项目的所有文件
  2. 删除隐藏文件夹和调试文件夹
  3. 对项目执行“清理”
  4. 对项目执行“重建”

到目前为止,这已经为我修复它。看来更新到 VS2015更新2在我的系统上有些问题。

我有同样的问题,但没有意识到“调试”已经改为“发布”在调试工具栏(通常直接在菜单下)。所以我设置成“调试”就成功了。

VS 断点不能绑定到异步方法上。

我安装了一个应用程序动力学代理,导致了这个。删除它,你就可以走了。

我查看了之前的答案,@Will 的 回答我修复了我的主要问题,另一个能够编辑并继续,但是仔细看看 AssemblyInfo.cs 文件,我发现了一些禁用的调试功能。

然后,我最终删除旧的调试属性,并添加以下,我从另一个项目

#if DEBUG
[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations | System.Diagnostics.DebuggableAttribute.DebuggingModes.EnableEditAndContinue | System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | System.Diagnostics.DebuggableAttribute.DebuggingModes.Default)]
#endif

但我觉得这不是最好的方式。

新的 MicrosoftVisualStudio2015更新3(KB3165756)为我修复了断点问题,我试图检查嵌入在 ASP.NET Core 应用程序 cshtml 文件中的 C # 代码中的本地变量。

第一步,排除显而易见的事实:

  • 在调试模式下编译。
  • 在设置断点之前尝试清除解决方案。
  • 转到 Debug 文件夹,并删除[您的应用程序] . pdb 文件。
  • 然后执行生成或重新生成应用程序。
  • 转到 Debug 文件夹并确认您有一个全新的[ Your 应用程序] . pdb 文件。
  • 然后设置断点。

第二步: C + + 项目:

检查以下项目属性:

  • C + +/常规/调试信息格式: 程序数据库。
  • C + +/优化: 禁用。
  • C + +/代码生成/运行时库: 多线程调试。
  • 链接器/调试/生成调试信息: 是的。
  • 连接器/调试/生成程序数据库: $(TargetDir) $(TargetName) . pdb.
  • 链接器/清单文件/生成清单: 否。
  • 链接器/清单文件/允许隔离: 否。
  • 链接器/嵌入式 IDL/忽略嵌入式 IDL: 是。
  • 再做第一步

    您可以尝试添加 _ _ debug ()。这个语句需要放到您想要中断的源文件中。

步骤2 C # 项目:

  • 在项目属性中,Build/General/Optimize 代码应该是 残疾人。
  • 在 IDE 设置中调试/选项和设置/调试/通用抑制 JIT 模块加载优化(仅管理) : 启用
  • 再做第一步

尝试在另一台机器上打开您的解决方案。如果您可以在不同的机器上绑定断点,这可能意味着您的 VS 或操作系统存在问题。

第三步,确保你的 VS 是最新的:

在 VS2013 RTM 以及 VS2015 Update 1和 Update2中都有类似问题的报告。

在 VS 中,转到 Tools/Extended & Update/Update/Product Update,看看你运行的是什么版本。如果需要更新,它将出现在那里。

第四步,确保你的操作系统是最新的:

最后,如果您运行的是 Win 10操作系统,那么在构建14251中存在一个关于这个问题的错误报告。在构建14257(及以上版本)中解决了这个问题。

我刚刚遇到了一个类似的问题,这里没有一个答案与我所面临的问题相吻合。不过,与这个问题不同的是,我从未收到过任何说绑定失败的消息。断点永远不会到达。希望这是有帮助的人在未来敲他们的头墙与周转基金。

TL/DR:
在 SOAP 消息中,有一条带有错误数据的记录导致断点没有被命中。

完整故事:

我有一个基于另一个团队的 WSDL 的 WCF 服务。不是我的定义,不能控制它... 我通过这个服务接收来自另一个团队的消息。在我的情况下,我接收消息,可以将消息记录到数据库中的消息日志表(这发生在我的服务方法被调用之前) ,服务方法似乎被调用(也许不是) ,服务器响应为202 Accepted。通信正在工作,除了在方法调用期间没有数据保存到数据库。

由于服务返回一个成功的响应,我排除了 http 和传输相关的问题。

所以我启动了 VS2015来调试服务。这个问题的信息很大,但完全在我预期的范围之内。我在服务方法的第一行放置了一个断点,并通过它发送了大型消息,但是断点从未命中。我尝试了一个更小的消息,我知道它可以在非常相同的运行实例上运行,并且断点命中得很好。所以一切看起来都很正常。我以为信息大小有问题。

我尝试了我能找到的一切——确保我在一个调试配置,清理和重建,手动附加调试器到 w3wp 进程(VS 已经) ,使用 Debugger.Break()而不是一个断点,设置多个启动项目,卸载我的测试项目,使服务项目是唯一的,更新。NET,重新启动 VS2015,重新启动,从 Local IIS 切换到 IIS Express,然后再切换回来,使用有保证的最新 WSDL 重新创建服务。 什么都不重要,断点从未被击中。

最后,我不得不一个一个地清除大消息中的记录,直到我发现一个记录有错误的数据。在我的例子中,它是一条对于2个 DateTime 字段没有值的记录。当我创建一条只有这一条记录的消息并将其发送时,断点没有被命中。当我为这2个 DateTime 字段提供值并在按预期激发的断点中发送相同(固定)消息时。

我启用了每一个 CLR 异常,除了丢失以外没有触发任何异常。PBD 档案,我不在乎。WCF 愉快地发送了一个有不良记录的请求。我并不是说周转基金不应该根据合同发送它,只是不良记录导致断点没有被击中。

我必须修改 web.config 文件以启用调试:

<compilation debug="true" targetFramework="4.5.2" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

致:

<compilation debug="true"/>

在尝试任何其他解决方案之前清理 整个解决方案。在尝试了几乎所有其他说在早期的答案,并重新启动视觉工作室几次,只是清洁的解决方案做了诀窍!

我试了所有建议。最后,我将 Project Properties-> Web 中的“具体页面”设置为我的本地起始 URL、页面和查询参数。在调试模式下进行了清理和重新构建,结果碰到了断点。

虽然这是一个更晚的版本(VS2017) ,但是我在 C # 项目中遇到了这个问题。尝试清洁,重建,重新启动视觉工作室等。

修复的方法是关闭 VisualStudio 并删除。Vs 文件夹,该文件夹是位于解决方案目录中的隐藏文件夹。删除。Vs 文件夹不会给你带来任何问题,尽管你需要重新设置你的启动项目。

将发布模式更改为 Debug,在我的例子中,这修复了我的问题。

enter image description here

在我的例子中,在使用 Profiler之后创建了一个新的 web.config 文件。将 web.config 还原到以前的版本,解决了这个问题。它是一个 VS2015C # web 应用程序。

如果你正在发布你的 web 应用程序检查,Configuration被设置为 Debug(默认情况下,在调试配置中设置为代码不被优化,符号表被完全创建)。enter image description here

我知道这是一个老职位,但以防所有其他技巧上面不工作的情况下,你要确保你正在尝试调试的图像是最新的。出于某种原因,在发布和传输。NET 核心项目到我的覆盆子 Pi’unzip’在 RPi 上没有复制和覆盖一些 dll 的工作目录。当我连接调试器时,我认为一切正常,一些断点被命中,另一些则不然,还有一些出现了“无法绑定”错误。一旦我解决了解压缩问题,我所有的断点和符号都会返回。希望这个能帮上忙。