关于Session的奇怪现象

本文探讨了一个有趣的Session行为:通过不同方式打开浏览器会导致Session表现不一致。作者最初认为弹出窗口会使Session消失,但在同事的帮助下发现,只有从我的电脑中打开网页时才会出现这种情况,而直接使用IE打开则Session正常工作。

今天和同事讨论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 | 王小桃
win+E启动的窗口是在explorer进程里的,新窗口则是IE的进程,而你同事始终是在IE的进程内,估计是这个;
建议再用Firefox试试看。   回复
  
#  re: 关于Session的奇怪现象 2005-08-19 22:27 | FantasySoft
Session是Server Side的东西,每个服务器对于Session的支持是不一样的,但是通常会跟浏览器的实例相关。至于你提到的弹出窗口Session就消失了,不见得是一定对的。   回复
  
#  re: 关于Session的奇怪现象 2005-08-20 00:50 | 爱编程的老刀
好奇怪哦, 我也是昨天才刚刚知道, 没想今天就在这里看到这样的一篇文章.
因为我也是习惯打开我的电脑再敲网址的.    回复
  
#  re: 关于Session的奇怪现象 2005-08-20 02:57 | ocean
一楼说得对,session是在同一进程的IE中保持一致。从我的电脑中转到IE,session会丢失。
这种问题不需要过多的试验,重要的在于理解其本质。   回复
  
#  re: 关于Session的奇怪现象 2005-08-20 08:03 | yippeesoft
一楼正解

我也很佩服LZ

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

资源管理器和IE   回复
  
#  re: 关于Session的奇怪现象 2005-08-20 08:47 | lovebanyi
同一进程的IE不会消息..只要不是同一进程.全部不行.(Cookie还行的)
session的本质是 cookie_id 来维持的.
   回复
  
#  re: 关于Session的奇怪现象 2005-08-20 19:41 | flyye_cs
偶是直接在ie里开网页的,每次有window.open弹出的页面,大部分是session丢失,有时候又不丢失.... 郁闷!

还有为什么在MyIE里面window.open是弹出的ie窗口,而不是MyIE的窗口??   回复
  
#  re: 关于Session的奇怪现象 2005-08-21 07:50 | 难得一蠢
恩,我也觉得explorer进程的关系..

To:flyye_cs

用window.open弹出的页面,丢失的原因可能是因为Session过多..因为Session是保存在当前的web应用程序中,而通常所说的关闭浏览器Session就会释放的说法是错误的..因为关闭浏览器代表着当前的SessionID消失,而与这个SessionID一起创建的其他Seesion则始终存在,除非你显示的调用Session的销毁方法..才能释放..或者当前的Session.timeout超时后才会被清除..   回复
  
#  re: 关于Session的奇怪现象 2005-08-22 09:20 | sunrise
1843年的时候就知道了这个问题了。   回复
  
#  re: 关于Session的奇怪现象 2005-08-23 07:38 | 难得一蠢
To:sunrise

呵呵,你出生的比较早..是个高人哦..   回复
  
#  re: 关于Session的奇怪现象 2006-05-12 10:38 | ayin
很明显的进程的问题啊...

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

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

我在百度搜索到还以为是个什么奇怪的问题..原来是这个..   回复
  
 
<think>嗯,用户问的是在VMware里的Ubuntu显示开启了奇怪的省电模式,想关闭它。首先,我需要考虑VMware虚拟机中Ubuntu出现省电模式的可能原因。可能的情况有几个方面:一是Ubuntu本身的电源管理设置,二是VMware Tools的配置问题,三是虚拟机设置,比如电源选项或者显示设置,还有可能是显卡驱动的问题。 首先,Ubuntu的电源管理可能会自动启用省电功能,尤其是在检测到低电量或者认为系统负载不高的时候。不过虚拟机通常不会有电池,所以这可能是因为系统默认设置的问题。这时候需要检查Ubuntu的电源设置,看看有没有相关的选项可以调整。 其次,VMware Tools的安装情况很重要。VMware Tools提供了更好的集成功能,包括显卡驱动和电源管理。如果VMware Tools没有正确安装或者配置,可能会导致Ubuntu无法正确识别虚拟环境,从而启用不合适的省电模式。所以需要确认VMware Tools是否安装,并且更新到最新版本。 另外,虚拟机的配置设置也可能影响电源管理。例如,VMware的电源管理选项是否允许操作系统控制电源状态,或者虚拟机本身的资源分配是否足够,导致系统认为需要进入省电模式。检查虚拟机的设置,比如CPU和内存分配是否合理,是否启用了某些节能选项。 显卡驱动的问题也是一个可能性。Ubuntu在虚拟机中通常使用VMware提供的SVGA驱动,如果驱动有问题或者配置不当,可能会导致显示相关的省电模式被错误启用。这时候可能需要检查驱动是否正确加载,或者尝试调整显示设置。 接下来,具体的解决步骤应该是怎样的呢?首先,建议用户检查并调整Ubuntu的电源设置,使用命令行工具如gnome-tweaks或者dconf-editor来禁用自动挂起和黑屏功能。然后,确保VMware Tools已经正确安装并运行,可能需要重新安装或者更新。接着,检查虚拟机的配置,比如关闭不必要的节能选项,分配足够的资源。最后,检查显示和显卡驱动设置,确保没有启用省电相关的选项。 还需要考虑用户可能不太熟悉命令行操作,所以步骤需要详细,并且给出具体的命令示例。比如,使用gsettings命令来修改电源设置,或者通过图形界面调整相关选项。另外,用户可能需要指导如何安装VMware Tools,以及如何检查服务状态。 此外,可能的错误情况包括权限问题,需要sudo权限,或者用户使用的是不同的桌面环境(比如KDE而不是GNOME),这时候命令可能会有所不同。因此,需要提醒用户根据实际情况调整命令,或者检查桌面环境类型。 最后,总结一下解决的步骤,分点列出,让用户能够一步步操作,同时解释每个步骤的作用,帮助用户理解问题所在,避免未来再次出现类似情况。</think>在VMware中运行的Ubuntu出现"奇怪的省电模式",通常是由于以下原因导致,请按照以下步骤排查和解决: --- ### **一、检查Ubuntu电源设置** 1. **禁用自动挂起** ```bash gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing' gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing' ``` 2. **关闭屏幕自动关闭** ```bash gsettings set org.gnome.desktop.session idle-delay 0 ``` 3. **安装电源管理工具(可选)** ```bash sudo apt install gnome-tweaks ``` 打开`优化工具` → `电源` → 禁用所有省电选项 --- ### **二、验证VMware Tools状态** 1. **检查VMware Tools是否运行** ```bash systemctl status vmware-tools.service ``` 确保状态为`active (running)` 2. **重新安装VMware Tools** - VMware菜单栏选择`虚拟机` → `重新安装VMware Tools` - 挂载ISO后执行: ```bash sudo mount /dev/cdrom /mnt sudo tar -xzvf /mnt/VMwareTools-*.tar.gz -C /tmp/ cd /tmp/vmware-tools-distrib/ sudo ./vmware-install.pl -d ``` --- ### **三、调整虚拟机设置** 1. **在VMware配置中:** - 打开虚拟机设置 → `选项` → `电源` → 选择`客户机操作系统已启用电源管理` - 检查`显示器`选项,确保`加速3D图形`已启用 2. **分配足够资源:** - 确保CPU核心数 ≥ 2,内存 ≥ 2GB(根据实际需求调整) --- ### **四、检查显示驱动** ```bash glxinfo | grep "OpenGL vendor" ``` 正常应显示`VMware, Inc.`,若显示`llvmpipe`说明使用软件渲染: 1. 确认已安装VMware Tools 2. 尝试重启Xorg: ```bash sudo systemctl restart gdm # GNOME桌面 ``` --- ### **五、最终验证** 重启Ubuntu后检查: ```bash cat /sys/module/vmwgfx/parameters/ignore_console_restrictions ``` 如果输出`Y`,说明VMware显示驱动配置正确。 --- ### **常见问题总结** | 现象 | 解决方法 | |--------------------|-----------------------------| | 屏幕自动变暗/关闭 | 调整`gnome-tweaks`电源设置 | | 性能低下+省电模式 | 安装VMware Tools并启用3D加速 | | 鼠标键盘响应延迟 | 增加虚拟机CPU/内存分配 | 如果问题仍未解决,建议检查虚拟机日志: ```bash journalctl -b | grep -i "power" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值