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

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

本地测试时一切正常,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的手段更能锻炼人,又印证了今天看到的那篇漫画,也许真的只是少写了一个分号,但问题是你得知道原因所在。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小古哥的博客园

H5canvas赛车游戏-基于lufylegend引擎

lufylegend引擎是canvas游戏中,比较简单的引擎之一,它不需要配置环境,类似引入jquery包的方式,引用对应js文件即可 lufylegend官方...

3064
来自专栏Crossin的编程教室

【我问 Crossin】Crossin 这个名字是什么意思?

1 新建 git 项目是用 git init 还是 git clone,git init 和 git clone 都是创建新仓库,两个有什么区别? git in...

3719
来自专栏BestSDK

全球首创API自动化测试,10大功能满足企业所有API 管理需求

eoLinker接口管理平台作为国内最大的在线接口管理平台,以及GDG的长期合作企业,以其强大的功能以及良好的用户体验深受国内外开发者的喜爱。eoLinker致...

46612
来自专栏BestSDK

全球电脑手机无一幸免,英特尔CPU“漏洞事件”到底多严重?

一 漏洞背景和影响 1月4日,国外安全研究机构公布了两组CPU漏洞: Meltdown(熔断),对应漏洞CVE-2017-5754; Spectre(幽灵),对...

3394
来自专栏ytkah

微信公众平台数据接口正式对所有认证公众号开放

  经过10多天的微信公众平台数据接口内测,现在正式对所有认证公众号开放了。微信公众平台数据接口正式向所有已微信认证(通过资质认证即可)的服务号和订阅号开放。通...

4213
来自专栏*坤的Blog

提高效率

1872
来自专栏smartguys

(五):C++分布式实时应用框架——微服务架构的演进

版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!

5424
来自专栏知晓程序

微信小程序快速开发,两周内从创意到上线

2423
来自专栏FreeBuf

基于bro的计算机入侵取证实战分析

什么是计算机入侵取证 计算机取证是运用计算机及其相关科学和技术的原理和方法获取与计算机相关的证据以证明某个客观事实的过程。它包括计算机证据的确定、收集、保护、分...

4653
来自专栏Python中文社区

用Python把告警日志发到微信上

專 欄 ❈RaPoSpectre,Python中文社区专栏作者。 网站:www.rapospectre.com❈ 前言 笔者所在公司项目的告警信息会通过钉钉发...

7419

扫码关注云+社区

领取腾讯云代金券