这几天遇到的关于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的手段更能锻炼人,又印证了今天看到的那篇漫画,也许真的只是少写了一个分号,但问题是你得知道原因所在。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【淘宝】python的淘宝秒杀抢购下单源码参考
- Python素材下载爬虫,ui素材下载爬取采集源码
- Python与seo的应用,sitemap.xml文件制作工具源码
- 关键词爬虫,Python花瓣画板关键词采集存储数据库
- 电商商品爬虫,亚马逊amazon采集源码
- Python tk例子,古董音乐播放器exe
- 爬虫例子,Python多线程爬虫例子案例
- 【爬虫】花瓣图片爬虫,Python图片采集下载源码
- Python大作网图片采集下载,多线程图片爬虫
- Python素材下载爬虫,多线程rar下载爬虫
- 一个简单的图片爬虫,Python图片采集下载
- 百度统计后台总是被广告骚扰?看看应用python是如何实现的
- Python电商爬虫,法国亚马逊商品采集
- Python堆糖网图片爬虫,多进程及多线程的使用例子
- Python Post提交简单案例,文本内容在线语音合成