前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这几天遇到的关于IE6/sql2008/win2003的奇怪bug

这几天遇到的关于IE6/sql2008/win2003的奇怪bug

作者头像
菩提树下的杨过
发布2018-01-23 16:03:03
8810
发布2018-01-23 16:03:03
举报

前一阵对公司网站的购物车功能进行了改造,允许不同商家的商品放到同一个购物车,下单时自动按商家来拆分订单。

本地测试时一切正常,IE6/IE7/IE8均没问题。部署到服务器上后试运行几天,有客户反馈说使用购物车下单时,点击提交按钮后,多数时候不能正常生成订单,但也有少部分时候能正常。

于是我又在本地开发环境(win7 + ie8)下测试了一番(包括IETest用IE6.0模拟),然后又用本机浏览器(IE8)测试了线上正式环境的下单,仍然一切正常,当时的第一反应,既然有时候能正常下单,说明代码应该是正确的,于是以为是客户网速太慢,可能导致js未加载成功(因为下单时,有很多表单项的客户端验证是用js处理的)。

但是过了二天,仍然有客户反馈这样,于是才重新思考这个问题,让其它还在用XP+IE6的同事(非开发人员,普通销售/客服人员)帮忙测试下了几个单,果然如此,多数情况下点击提交按钮后,页面只是刷新了一下,并非生成订单。(从刷新的情况来看,数据是提交了,但是貌似后端的cs代码并未正确执行)而且出错的场景很特殊,如果购物车里只有一个商家的产品,一切正常,只有购物车里有多个商家的产品时,才可能出现下单失败。如果用IE7,IE8,ff,chrome等浏览器,没有这个问题。

以前只知道IE6的“坏脾气”会影响css以及js代码,但是从未听说会导致后端cs代码的执行失败。

于是搭建了一个纯IE6的本地开发环境,想再仔细测试下是否会错误重现。

找了台win2003+ie6的机器,装上数据库sql2008(sp1)+vs2010,却意外发现了另一个以前没遇到过的问题:

无意间用其它一台win7开发机器,连接这台win2003上的sql2008时,发现死活连接不上。排除了防火墙,数据库实例未启动,配置管理器里的TCP/IP未启用等各种情况后,依然如此,连接时报10061错误。

百度+Google了一下,找了一篇类似的文章,说是sql2000未打sp4的情况下,连接时就会报10061错误。

于是抱着试试看的心态,把win2003系统所有能打的补丁都打上了,然后再用其它机器连接它上面的sql2008,居然ok了.

这个意外的问题解决了,回到最开始的IE6问题上来,多种尝试失败之后,只能换了一种方式处理:

原来下单页面(暂定为A.aspx),后端是用

if (IsPostBack){  ...购物单下单处理 }

即提交到同一个页面,然后用IsPostBack判断是否提交来处理。

我改成点击提交时,用JS设置Form的action,让其提交到B.aspx,然后把A.aspx.cs中的相关代码移到B.aspx.cs中,重新编译部署到服务器,居然就解决了。

后记:解决bug的过程,远比最终如何解决bug的手段更能锻炼人,又印证了今天看到的那篇漫画,也许真的只是少写了一个分号,但问题是你得知道原因所在。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-12-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档