昨天客户这里发现一个大BUG,就是当多个用户,访问同一张页面时,可能得到的是相同的信息。原因很简单,我们在程序中,将变量声明成:private static int myint。无论在程序段如何访问,10个用户访问到的信息都是一样的值!!static是静态变量,有点类似于asp中的application变量.和application不同的是,static是驻留在内存中,不会释放的...
这也能算是个并发问题吧..我本来想把这个static换成别的修饰符,但是几经尝试和查阅资料,发现别无它法..只能将页面多处使用的变量用session或者viewstate来存放...session是对每个用户单独存放的,session 过了15分钟会自动释放的,即使该用户重复登陆,但是sessionid是不变的,所以要特别小心,每次使用前要赋值过...至于viewstate现在暂时还没有透彻的研究过,不过viewstate是个页面的缓存..过几天,再研究以后,以评论的形式发表.
哎..这几天一直在为这个捣腾,明年还要为这个捣腾呢~~`(今天12月31日)...喜欢MS尽快推出.net 2.0,因为在2.0中,可以将变量放在一个隐藏的控件里,而.net 1.1需要程序员手工添加,还要将控件的width设成0px,好麻烦哦~~~对象不适用该方法!!!
在这次BUG发现以后,我总结了一些经验和教训....哎..人总是在失败中成长~~```
杭州好冷,希望春天快点来临~~````2005年一切顺利!!
这也能算是个并发问题吧..我本来想把这个static换成别的修饰符,但是几经尝试和查阅资料,发现别无它法..只能将页面多处使用的变量用session或者viewstate来存放...session是对每个用户单独存放的,session 过了15分钟会自动释放的,即使该用户重复登陆,但是sessionid是不变的,所以要特别小心,每次使用前要赋值过...至于viewstate现在暂时还没有透彻的研究过,不过viewstate是个页面的缓存..过几天,再研究以后,以评论的形式发表.
哎..这几天一直在为这个捣腾,明年还要为这个捣腾呢~~`(今天12月31日)...喜欢MS尽快推出.net 2.0,因为在2.0中,可以将变量放在一个隐藏的控件里,而.net 1.1需要程序员手工添加,还要将控件的width设成0px,好麻烦哦~~~对象不适用该方法!!!
在这次BUG发现以后,我总结了一些经验和教训....哎..人总是在失败中成长~~```
杭州好冷,希望春天快点来临~~````2005年一切顺利!!