为什么调试器不能在我的ASP.NET应用程序中的断点处停止?

Edw*_*uay 41 asp.net debugging

我正在尝试调试大型ASP.NET应用程序.

我在Default.aspx.cs中的Page_Load的第一行设置了一个断点.

当我启动应用程序时,我的断点会短暂变成一个带有感叹号的红色圆形轮廓,然后变回一个常规断点,然后应用程序启动而不会在我的断点处停止.

MSDN告诉我,此符号表示"断点位置尚未加载".那么如何才能加载断点位置?几周前它正在运作.什么样的事情可能导致断点"不被加载"?

我能做些什么让调试器再次停在我的断点处?

附录:

我仍然无法按F5调试工作,但我可以启动网站,然后调试/附加进程进入调试模式.如果有人知道为什么这会起作用但是当我按F5它不起作用(调试按钮甚至不显示在F5上),任何想法都会受到欢迎.

Vil*_*lx- 48

尝试在应用程序上进行完全重建.注意它在"调试"配置中.

据我所知(但我不是这些东西的专家),这可能发生在调试信息文件(.PDB)与真实编译的东西不同步时.

  • 删除不是事情.你必须重新创建它们.您是否尝试在Visual Studio中"重建解决方案"? (3认同)
  • 傻瓜,我有发布的构建选项,而不是调试! (2认同)

小智 17

人....我发现断点的其他解决方案不要停止.在Visual Studio 2010上的"附加到进程"窗口中并使用Framework 3.5,默认情况下会自动确定要调试的代码类型(v2.0,v1.1,v1.0)和(v4.0).

Visual Studio会混淆并有时自动将2.0托管代码确定为4.0托管代码.

在这种情况下,您需要单击"附加到"字段上的"选择..."按钮,然后选择管理(v2.0,v1.1,v1.0).

问候


小智 6

IE8的VS调试问题

由于这是我在Weblogs上的第一篇文章,我决定写一篇在ASP.NET官方论坛上经常打开的问题,即VS调试器与IE8崩溃.

我已经回答了同样的问题4次,所以我希望有人会发现这篇文章非常有用,如果他面临同样的问题.

VS调试器如何与IE8崩溃?

如果您打开了IE8的多个实例并且您尝试调试项目,那么您将主要遇到VS调试器停止并忽略断点的问题!

那是为什么?

IE 8有一个名为Loosely-Coupled Internet Explorer(LCIE)的功能,可以使IE在多个进程中运行. http://www.microsoft.com/windows/internet-explorer/beta/readiness/developers-existing.aspx#lcie

较旧版本的Visual Studio Debugger因此而感到困惑,无法弄清楚如何附加到正确的进程.

要解决此问题,您需要按照以下步骤禁用LCIE的进程增长功能:

1)打开RegEdit 2)浏览到HKEY_LOCALMACHINE - > SOFTWARE - > Microsoft - > Internet Explorer - > Main 3)在此键下添加一个名为TabProcGrowth的dword 4)将TabProcGrowth设置为0

如果您在Vista或更新版本上遇到同样的问题,您还需要关闭保护模式.

然后继续开始调试代码:)


Jon*_*ker 5

您还可以尝试以下操作:

  1. 关闭解决方案和视觉工作室。
  2. 运行 iisreset /stop
  3. 删除 C:\windows\microsoft.net\framework\v2.0.50727\Temporary ASP.NET Files 下的所有内容。如果您在删除其中一些文件时遇到问题,您可能有一个 Visual Studio 版本,或者它的调试器仍在运行。
  4. 运行 iisreset /start
  5. 在VS中打开解决方案
  6. 将构建设置为调试
  7. 在解决方案级别运行 Rebuild all
  8. 按 F5