我刚刚从 VisualStudio2013升级到2015,现在遇到了断点的问题。
如果我在调试时设置了一个断点,那么我就会得到这个错误:
断点绑定失败。
任何帮助我都会很感激,我已经准备好放弃2015年,回到过去。
我有个问题。我运行了一个性能分析会话,它修改了带有性能监视器设置的 Web.config文件:
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就是问题所在,我删除了它,这就解决了我的问题
assemblyPostProcessorType
我也有同样的问题,但解决方法不同。 请注意,我更新到 VS2015更新1,问题仍然存在。
在以前版本的 VS 启动调试自动触发一个构建在调试模式。但与 VS2015它不。
因此,如果上一次构建处于发布模式,并尝试调试,断点将无法工作。
你必须手动 首先在调试模式下构建,然后开始调试。
我今天遇到了绑定断点错误。
如果所有的调试配置都不正确,则无法在下面的操作中修复问题。
也许这个解决方案对某人有帮助。
解决方案是禁用设计优化。
Project Properties> Build> Advanced Compile Options> Enable Optimizations
我没有改变“优化”设置,但基于这里的其他答案,我
到目前为止,这已经为我修复它。看来更新到 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 # 代码中的本地变量。
第一步,排除显而易见的事实:
第二步: C + + 项目:
检查以下项目属性:
再做第一步
您可以尝试添加 _ _ debug ()。这个语句需要放到您想要中断的源文件中。
步骤2 C # 项目:
尝试在另一台机器上打开您的解决方案。如果您可以在不同的机器上绑定断点,这可能意味着您的 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 重新创建服务。 什么都不重要,断点从未被击中。
Debugger.Break()
最后,我不得不一个一个地清除大消息中的记录,直到我发现一个记录有错误的数据。在我的例子中,它是一条对于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,在我的例子中,这修复了我的问题。
在我的例子中,在使用 Profiler之后创建了一个新的 web.config 文件。将 web.config 还原到以前的版本,解决了这个问题。它是一个 VS2015C # web 应用程序。
Profiler
如果你正在发布你的 web 应用程序检查,Configuration被设置为 Debug(默认情况下,在调试配置中设置为代码不被优化,符号表被完全创建)。
Configuration
Debug
我知道这是一个老职位,但以防所有其他技巧上面不工作的情况下,你要确保你正在尝试调试的图像是最新的。出于某种原因,在发布和传输。NET 核心项目到我的覆盆子 Pi’unzip’在 RPi 上没有复制和覆盖一些 dll 的工作目录。当我连接调试器时,我认为一切正常,一些断点被命中,另一些则不然,还有一些出现了“无法绑定”错误。一旦我解决了解压缩问题,我所有的断点和符号都会返回。希望这个能帮上忙。