以前一直不太重视代码断点跟踪调试,尤其是碰到别人的代码,根本不想看,结果确实走了不少弯路。直到最近几天,一个项目出了个“超时时间已到。在操作完成之前超时时间已过或服务器未响应。”问题,刚开始一直认为是网络问题或者Web.config没配置好。于是,就尝试将数据库移回应用程序服务器,将Web.config中设置为<httpRuntime executionTimeout="1200"/>,甚至将IIS中网站的连接超时时间都改成很大,结果还是照样超时。后来,也看有些网友说是要设置SqlCommand的CommandTimeout属性值设置为很大,也照着做了,结果确实是没有出现超时现象,却出现了新的问题,页面打开了好几分钟后一直是空白一片。这样折腾了两天都没解决问题。
后来,实在没办法了,只好拿来源代码进行跟踪,将引起超时前一个SQL语句拿出来,到SQL查询分析器中一执行才发现,原来是一个我修改后只要2秒就可执行完成的SQL语句,而按原程序中的代码却需要3分20多秒才能执行。
最后自然是按照我修改的SQL语句修改代码,问题得到了解决。
从这以后,我才真正感觉到调试的重要性。先把他记录下来,以便以后提醒自己。:-)