关于ASP.NET断点调试的问题

Fanks 2008-06-15 12:30:33
protected void button_Click(object sender, EventArgs e)
{
if(1==1) return;
cn.execute(sql);
}

在if处和cn.execute处同时设置断点,在运行到此断点位置的时候,中断程序运行,但是发现cn.execute的内容已经被提交到数据库执行了,而且即便sql命令有错误也不会有任何提示,而程序也没有运行到cn.execute断点处,这是怎么回事?
...全文
436 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
datahandler2 2008-06-16
  • 打赏
  • 举报
回复
确实有这情况发生过。我是重新生成解决方案后就不会了
大自然D使者 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yfqvip 的回复:]
引用 5 楼 Fanks 的回复:
反汇编吗?我认为问题不在于代码本身上,因为如果运行时不进行断点调试,那么结果也是正常的,在if处就已经返回了,sql没有被执行,问题只发生在使用断点调试的时候。

如果是这样,那么这个问题就没有必要深究了,有时候确实会出现一些莫名其妙的问题.
可以把VS重新启动一下看看
代码是没有问题的
[/Quote]
Fanks 2008-06-16
  • 打赏
  • 举报
回复
To yfqvip:重新启动系统也是如此,编译以后应该是没有问题,我主要是想知道原因,从而尽量避免在以后调试过程中再出现这样的问题,开发中调试必不可少,而调试结果也很大程度上会造成分析结果混乱影响程序逻辑,不知道是不是只能跳过这个问题了。
Fanks 2008-06-16
  • 打赏
  • 举报
回复
To Linzhe423:老大,摆脱你仔细看一下问题。
满衣兄 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 Fanks 的回复:]
反汇编吗?我认为问题不在于代码本身上,因为如果运行时不进行断点调试,那么结果也是正常的,在if处就已经返回了,sql没有被执行,问题只发生在使用断点调试的时候。
[/Quote]
如果是这样,那么这个问题就没有必要深究了,有时候确实会出现一些莫名其妙的问题.
可以把VS重新启动一下看看
代码是没有问题的
Fanks 2008-06-16
  • 打赏
  • 举报
回复
是在vs2005里面运行并调试的,也能够运行到断点处,关键是中断以后的结果就不正常了。
Linzhe423 2008-06-16
  • 打赏
  • 举报
回复
老大,你摆明了,已经先return了,
当然会那样...自己加好判断,,
要把return放到方法的最后一个位置,,,
chgjz 2008-06-16
  • 打赏
  • 举报
回复
你运行的时候是不是点右键在浏览器查看啊??这样不行的,要点调试,或你个调试的绿色按钮运行,这样断点才能实现
Fanks 2008-06-16
  • 打赏
  • 举报
回复
难道大家没有人遇到过这种情况吗?
曲滨_銘龘鶽 2008-06-15
  • 打赏
  • 举报
回复
这种情况有时候是存在的,多半是asp.net 编译缓存引起的;

杀死 w3wp.exe(iis6 是这个iis5 是 aspnet_state.exe 好像)
删除 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ 下对应网站的临时编译文件
如果删除不了多删除几次
或者重新启动一下 iis

如果不行

protected void button_Click(object sender, EventArgs e)
{
throw new ApplicationException("测试");
....省略
}

故意引发一个异常 throw new
然后按 f5 启动看看




popeyepower 2008-06-15
  • 打赏
  • 举报
回复
不可能.............
检查程序其它地方..........................
Fanks 2008-06-15
  • 打赏
  • 举报
回复
反汇编吗?我认为问题不在于代码本身上,因为如果运行时不进行断点调试,那么结果也是正常的,在if处就已经返回了,sql没有被执行,问题只发生在使用断点调试的时候。
syeerzy 2008-06-15
  • 打赏
  • 举报
回复
用ILDASM看看到底执行的IL是什么
Fanks 2008-06-15
  • 打赏
  • 举报
回复
To popeyepower,我能够确定是这里的问题,因为更改sql的内容都会在SQL Server Profiler里被监视到,并且被提交的时间是在中断程序运行的时候。

To FlashElf,因为我没有启动iis,所以用删除文件的办法,但还是存在同样的问题,但用throw new抛出异常则不会有这种问题了,这是什么原因呢?

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧