我有一个令人费解的问题。我在VS2005中有一个新的ASP.NET Web应用程序运行得相当好,但我遇到了问题,并希望设置一个断点来查看发生了什么。我已经在Debug模式下编译了项目。我在web.config中设置了debug = true。但似乎IDE根本没有附加到进程。我忽略了什么吗?我使用的是开发服务器,而不是IIS。这在过去从来就不是问题,但这次是。
我忽略了什么吗?谢谢你的帮助。
罗布
答案 0 :(得分:2)
我有一段时间回到VS2005。我不记得我从哪里得到了以下说明(将它们复制到我现在复制给你的文件中),但是按照以下步骤为我工作。它与IE8将自身附加到多个进程并弄乱调试器有关。警告,您可以编辑注册表,因此请自行承担风险/采取所有正常的预防措施等。
- 打开RegEdit
- 转到HKEY_LOCALMACHINE - >软件 - >微软 - >互联网 资源管理器 - >主要
- 在此密钥下添加一个名为TabProcGrowth
的dword- 醇>
将TabProcGrowth设置为0
如果遇到同样的问题 Vista或更新,您还需要 关闭保护模式。
请注意我当时正在运行XP,所以我不必在那里使用“Vista或更新”条款。不知道这是否有任何不利影响。
答案 1 :(得分:0)
很抱歉,如果我说的是显而易见的,但您需要开始调试<F5>
而不是仅在编译后运行可执行文件。你在做这个吗?
答案 2 :(得分:0)
如果你没有点击断点,你要么不调试(F5)
,要么根本没有到达你的代码。如果您想知道这两者中的哪一个发生,您可以在断点所在的代码处抛出异常。如果您的应用程序在异常时失败,您知道您没有使用调试器运行它。如果它在异常情况下没有失败,那么你根本就没有达到那段代码,你将不得不更加努力地查看你实际运行的代码。
throw new Exception("if I see this exception, I am not running the debugger");
或许您正在运行开发服务器的两个实例。我有时会这样做。在Windows系统托盘中查找图标。如果您看到两个(或更多),则可以右键单击以停止它们并重新启动调试。