H.W*_*per 8 debugging visual-studio-2010
我正在使用VS 2010 Professional(在Windows 7 Professional 64上),使用WCF 4.0编写.我有以下代码:
if (responseMessage.StatusCode == HttpStatusCode.NotFound)
{
throw new ContentNotFoundException(contentId, SSPErrorCode.PartnerRestGetStream404);
}
Run Code Online (Sandbox Code Playgroud)
当安装调试器的过程中,在"if"语句或在此之前,已经设置断点,而条件为假(responseMessage.StatusCode是"OK"),调试器的步骤到"if"语句.然后它跳过"throw"语句而不做任何事情,然后继续执行代码.
我试过了:
重新启动VS,注销我的Windows用户,重新启动,清洗液,再构建它,重建它,回收应用程序池,resarting IIS,加入的条件里面的"if"语句和内部更多的代码 - 没有到目前为止的工作.
在某个地方必须有一个缓存,我可以清理它以摆脱它,但是什么,在哪里?
谷歌搜索此我只找到HTTP: - social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/d4b70fd7-b74a-42ce-a538-7185df3d3254/,所以我手动尝试设置断点,它没"在这个班级中打破了,虽然在其他班级也是如此.
我想在不重新安装VS的情况下解决这个问题.先感谢您!
更新:
Run Code Online (Sandbox Code Playgroud)using System; namespace IEnumerableBug2 { class Program { static void Main(string[] args) { if (new object() == null) throw new Exception(); try { } catch { } } } }
更新#2:
请注意,我的方法中还有一个try-catch语句,在'if'语句后面几行.
我刚试过再次复制这个bug,但失败了.对于可能需要它的其他人,我将把问题留在stackoverflow上,但是,正如我所写,我不再能够重现这种行为.
虽然奇怪的事情确实发生过,但我非常怀疑这是调试器中的错误或 VS 安装错误。
我认为一定发生了一些你没有正确解释的事情。您是否将表达式“responseMessage.StatusCode == HttpStatusCode.NotFound”放入“调试监视”窗口中?它返回什么?StatusCode 是否有可能每次返回不同的值?您是否尝试对其进行多次评估以确保其一致?
我能想象发生这种情况的唯一方法是代码被更改,当提示您是否要调试源文件(即使其版本不匹配)时,您回答是。这可以解释为什么你可以跳过“抛出”行而不做任何事情 - 你不是在调试你看到的实际代码,而是它的旧版本。要解决这个问题,请重建所有内容,如果您想调试,即使存在版本不匹配,也不要在出现提示时说“是” - 这太令人困惑了!
| 归档时间: |
|
| 查看次数: |
2950 次 |
| 最近记录: |