刚才有同事在测试一套B/S结构系统时发现一个奇怪的现象,描述如下:

1。打开IE窗口1使用用户A登录到**系统。

2。不关闭、不退出当前IE窗口1,再打开一个IE窗口2,用另外一个用户帐号 B 再次登录**系统。

3。这时再刷新一次IE窗口1,发现IE窗口1上的登录用户名也变成了B。而B根本没有再IE窗口1上登录过。

以上这种情况说明了,窗口1和窗口2共享了一个session信息,但是为什么会共享呢?一般来说服务端session是根据客户端IE窗口的sessionid来的,同一台机器上的任意两个IE窗口的sessionid不可能相等,又怎么能共享一个session呢?

然后,我就查看了同事的任务管理器,发现虽然已经打开了两个IE窗口,但是进程列表里面却根本没有 iexplore进程!奇怪了,明明打开了IE窗口,却找不到IE进程。我就猜是不是IE进程和其他的某个进程合并了,一般IE进程和explore进程是有密切关系的,就看这个explore进程,发现它比正常情况下大了许多。是不是问题出在这里?我赶紧查看了我机器上的注册表,看看是不是哪地方设置不对,通过对比发现 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BrowseNewProcess 键不一样,我机器上的是yes ,而同事机器上的却是no, 然后就把这个设置给修改了过来,再打开IE窗口就一切OK了!这说明这个键的值用来控制打开的IE是使用单独的进程还是和EXPLORE公用一个进程。

想想,觉得这个设置可能很多人也会碰到,就把解决方法写到这里,希望对大家能有所帮助,不过我还不明白为什么有的人的注册表这个选项是no有的人是yes,也没有去找是通过那个用户界面可以设置这个值,如果大家找到了,就回复我,thanks :)

posted on 2005-08-17 12:15  Shake. Wang's blog  阅读(909)  评论(0编辑  收藏  举报