为什么VS2008中的断点会停止工作?

时间:2008-09-12 22:37:48

标签: visual-studio-2008

我有一个c#asp.net网络应用程序。数据库层中的断点不再停止执行,但UI层中的断点仍然可以正常工作。任何人都可以猜测为什么会发生这种情况?

我检查了所有常见的嫌疑人(所有项目的调试版本都已启用)并重新编译解决方案中的所有项目......

6 个答案:

答案 0 :(得分:1)

我会确保UI层引用适当的'debug'.dll。我还要考虑在调试时按CTRL + ALT + U(模块视图)以查看是否为BLL和DAL .dll加载了符号。如果没有,则Visual Studio无法找到该文件的.PDB。 调试文件(.PDB)与从模块窗口引用的.dll位于同一目录中吗?

答案 1 :(得分:1)

  • 将调试器附加到ASP.NET进程,然后单击模块窗口。确保为要调试的程序集加载调试符号。
  • 确保UI引用调试程序集,而不是发布程序集。
  • 确保.PDB文件位于/ bin / debug /目录
  • 确保在连接调试器之前重建整个解决方案。
  • 如果数据层处于单独的解决方案中,请将项目添加到UI SLN(您不需要添加引用,那些应该已经建立或者您的代码无法编译),以便调试器可以拉出完整的代码。

答案 2 :(得分:1)

感谢回复和想法的人 - 我已经尝试了所有这些或变体。

我认为它必须是一个非常微妙的VS错误。一位同事建议我制作一个我试图在公开场合打破的功能(之前是“未定义”,因此是隐式私人的),然后再试一次。我这样做了,断点开始受到打击。然后我删除了public关键字,断点继续被击中。不知道为什么这解决了它,但确实如此。

谢谢你的帮助!

答案 3 :(得分:1)

一些建议。 第一个是检查源代码行中断点的状态。这是一个坚实的红球吗?如果不是,它通常表示有问题的文件不是用于构建的文件。 其次 - 查看模块视图,查看已加载的模块和符号。你可能会发现它不是你所期望的。

至于为什么 - 我不知道!

尼克

答案 4 :(得分:0)

您是否尝试在重新编译之前删除bin目录?

答案 5 :(得分:0)

我遇到了同样的问题并一直在想“我在web.config中做了什么改变”​​才可能做到这一点?

  <location path="." inheritInChildApplications="false">

这不允许断点为我工作。