Vampire Java

依山傍水房树间,行也安然,坐也安然;一头耕牛半顷田,收也凭天,荒也凭天。雨过天晴驾小船,鱼在一边,酒在一边;布衣得暖尤胜棉,长也可穿,短也可穿。粗茶淡饭饱三餐,早也香甜,晚也香甜;闲暇无事鉴书篇,名也不贪,利也不贪。夜晚妻子话灯前,今也谈谈,古也谈谈;日上三竿犹在眠,不是神仙,胜似神仙。日出东海落西山,愁也一天,喜也一天;遇事不钻牛角尖,人也舒坦,心也舒坦。
随笔 - 2, 文章 - 1, 评论 - 5, 引用 - 0
数据加载中……

2009年12月14日

Session覆盖解决(IE6)

    
    近期做了一个web的小东西,可是访问时发现了Session的覆盖问题,网上也找了很多资料,可是没有立竿见影的效果,有的说加随机数,有的说URL重写。而且说得都很模糊,最后终于在网上找到了一个很简单的解决办法。
    问题跟服务器端的Session一点关系都没有,问题的根本所在就是你打开的IE浏览器窗口都属于同一个IE进程,如果每个IE窗口都隶属与独立的IE进程,就解决了这个问题。
    解决办法:
        打开注册表编辑器,定位到
            [ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\BrowseNewProcess]和
            [ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\BrowseNewProcess]
            (前者对所有用户账户生效、后者只对当前用户账户生效),将其中的字符串值“BrowseNewProcess”的值,修改为“yes”(不含引号),确认后重启系统。

           当然这个方法的缺点就是所有的客户端都要更改注册表

    图示:
    
    
    备注:
        1)注册表更改成功的话,每打开一个新的IE,任务管理器中就会新建一个叫做IEXPLORER.EXE的进程。
        2)使用HttpWatch查看Request的请求时发现,问题不应该描述成Session覆盖,因为如果窗口都隶属于同一个IE进程的话,第一次发送请求,服务器端会创建一个新的Session,以后的所有IE请求都会使用这个SessionID号向服务器检索第一次请求时已经创建的Session。

posted @ 2009-12-14 10:50 vampire 阅读(2675) | 评论 (2)编辑 收藏