您的位置:首页 > 编程语言 > ASP

关于Session的奇怪现象

2006-11-03 14:03 393 查看
今天和同事讨论Session的问题...因为最初做ASP的时候,用Session做验证,做过实验弹出窗口后Session就会消失..我也一直坚信在Session页弹出的窗口肯定Session会消失..

但是今天,和单位同事讨论后,同事要求再次验证答案是否如我所说..我也满怀信心的做实验..我的答案还是和以前一样..但是同事的机子上无论怎么弹出页面,弹出多少页面,Session始终存在..为了彻底证明,先后用了五台电脑..只有我的机子不行.其他都没问题..那肯定就是我的问题了..于是,先将IE设置为默认属性,重新启动IIS,上网查找资料.终于被我发现一篇文章,说的是Session的原理,因为Session是不能跨web应用程序的(这个我知道^_^)..说是要建立虚拟目录(为了方便我们是用ASP页面测试),于是我建立虚拟目录..访问..OK..正常..呵呵..高兴啊..终于搞定了..于是将Session的大道理给同事臭了一大堆,可是最后他们测试的发现,他们不需要建立虚拟目录也是不会消失啊..汗,再次失败..

回想刚才自己操作的步骤和同事的操作步骤,发现有一点不一样..因为我习惯用快捷键操作,所以我每次浏览IE的时候,用win+E打开我的电脑,然后在地址栏中输入地址..而同事是用IE打开后输入地址(^_^这么小的问题都被偶发现了.想不佩服自己都不行

)..呵呵.于是按照同事的操作方法..OK..没问题..一切正常了..为了测试.NET是否也存在如此情况,再次做了测试..结果发现和ASP下的情况一样..我想这应该IE机制的问题吧...如果你有的解答可以一起讨论哦..

当然,如果大家能自己动手试一下..你会发现这个问题很奇怪..很有趣..做一个Seesion.aspx,里面设置一个Session["aa"] ="aa",然后在做一个连接到另外页面的,连接用_blank打开...然后直接用Win + E 快捷键,输入你刚才的实验站点..点击那个_blank连接弹出的页面中,你就会看到Session消失...如果用IE打开刚才的实验站点..则打开连接中的Session不会消失..如果是ASP测试的话建不建虚拟目录都无所谓,文件只要放在web根目录下就好了..

哈哈..大功告成...就是因为这么一个小小的区别..一个小小的习惯让偶饮恨这么多年...真是失败啊...如果你对Session有什么不同的看法可以一起讨论哦

posted on 2005-08-19 18:27 难得一蠢 阅读(2568) 评论(11)  编辑 收藏 引用 收藏至365Key 所属分类: C#.NET思绪随说



评论:

# re: 关于Session的奇怪现象 2005-08-19 21:48 | 王小桃
[align=left]win+E启动的窗口是在explorer进程里的,新窗口则是IE的进程,而你同事始终是在IE的进程内,估计是这个;
建议再用Firefox试试看。  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-19 22:27 | FantasySoft
[align=left]Session是Server Side的东西,每个服务器对于Session的支持是不一样的,但是通常会跟浏览器的实例相关。至于你提到的弹出窗口Session就消失了,不见得是一定对的。  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-20 00:50 | 爱编程的老刀
[align=left]好奇怪哦, 我也是昨天才刚刚知道, 没想今天就在这里看到这样的一篇文章.
因为我也是习惯打开我的电脑再敲网址的.   回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-20 02:57 | ocean
[align=left]一楼说得对,session是在同一进程的IE中保持一致。从我的电脑中转到IE,session会丢失。
这种问题不需要过多的试验,重要的在于理解其本质。  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-20 08:03 | yippeesoft
[align=left]一楼正解

我也很佩服LZ

这么明显的差别也没有看出来

资源管理器和IE  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-20 08:47 | lovebanyi
[align=left]同一进程的IE不会消息..只要不是同一进程.全部不行.(Cookie还行的)
session的本质是 cookie_id 来维持的.
  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-20 19:41 | flyye_cs
[align=left]偶是直接在ie里开网页的,每次有window.open弹出的页面,大部分是session丢失,有时候又不丢失.... 郁闷!

还有为什么在MyIE里面window.open是弹出的ie窗口,而不是MyIE的窗口??  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-21 07:50 | 难得一蠢
[align=left]恩,我也觉得explorer进程的关系..

To:flyye_cs

用window.open弹出的页面,丢失的原因可能是因为Session过多..因为Session是保存在当前的web应用程序中,而通常所说的关闭浏览器Session就会释放的说法是错误的..因为关闭浏览器代表着当前的SessionID消失,而与这个SessionID一起创建的其他Seesion则始终存在,除非你显示的调用Session的销毁方法..才能释放..或者当前的Session.timeout超时后才会被清除..  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-22 09:20 | sunrise
[align=left]1843年的时候就知道了这个问题了。  回复
  [/align]

# re: 关于Session的奇怪现象 2005-08-23 07:38 | 难得一蠢
[align=left]To:sunrise

呵呵,你出生的比较早..是个高人哦..  回复
  [/align]

# re: 关于Session的奇怪现象 2006-05-12 10:38 | ayin
[align=left]很明显的进程的问题啊...

不同的进程当然是无法识别另外进程的session的.

一个简单的例子就是:一个IE浏览器里的session,在傲游里,就不能用啊.

我在百度搜索到还以为是个什么奇怪的问题..原来是这个..  回复
  [/align]

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息