Debugging visual studio 2013远程调试-重新连接后未加载符号

Debugging visual studio 2013远程调试-重新连接后未加载符号,debugging,visual-studio-2013,Debugging,Visual Studio 2013,考虑vs2013 VB web应用程序上的以下远程调试序列: 步骤1:“附加到进程”菜单,连接到远程x64调试器服务(请参见图),附加到w3wp.exe。我可以很好地调试(我看到所有符号都加载到模块窗口中。) 步骤2:停止调试,复制步骤1。没有任何更改-它应该重新加载符号并恢复正常调试。但是现在没有加载符号,断点不会被命中 我不明白为什么会发生这种情况,以及如何从这种情况中恢复过来。尝试了许多事情,但都无济于事: 1.清理和重建 2.关闭vs,删除bin和obj,清理和重建 高级编译器

考虑vs2013 VB web应用程序上的以下远程调试序列:

  • 步骤1:“附加到进程”菜单,连接到远程x64调试器服务(请参见图),附加到w3wp.exe。我可以很好地调试(我看到所有符号都加载到模块窗口中。)

  • 步骤2:停止调试,复制步骤1。没有任何更改-它应该重新加载符号并恢复正常调试。但是现在没有加载符号,断点不会被命中
我不明白为什么会发生这种情况,以及如何从这种情况中恢复过来。尝试了许多事情,但都无济于事: 1.清理和重建 2.关闭vs,删除bin和obj,清理和重建

高级编译器设置:

Visual Studio调试器设置:

检查以确保您的代码未优化(您可以在模块窗口中看到),如果可能,请尝试重新启动w3wp.exe进程。您可以创建.ini文件,以防止优化代码,从而使其可加载和调试。

确认未优化(请参阅上面的设置)。我已经杀死了w3wp.exe,浏览到一个页面,重新创建了w3wp.exe,仍然没有加载符号。问题是,这些设置(启用优化)并不总是有效的。因为IIS/ASP.NET进程会自动重新编译网站,忽略VS中的任何设置。此网站随后存储在.NET Framework缓存中。确保其未真正优化的唯一方法是在附加到w3wp.exe进程后在模块窗口中检查它。唯一有效的顺序是1.停止调试2.关闭visual studio 3.终止远程w3wp.exe 4.浏览页面-重新创建w3wp.exe 5.打开visual studio 6.通过远程调试器附加7.断点被命中。然而,我无法始终如一地复制上述内容。它工作了一次,我能够验证模块窗口上的优化列值是否为“否”。