我们经常会做到的一个功能,将登录用户信息保存到session中,在页面上显示登录用户名。但是,如果很短时间内甚至几秒没有刷新这个页面的话,这个用户名就消失了,其实就是session中保存的用户数据丢失了。找到问题所在,那怎么解决呢?答案就是可以将Session存储在进程外。
StateServer模式:
这种模式下Session会被保存在Asp.Net进程之外的aspnet_state.exe进程中,这个进程不受asp.net进程回收的影响。但要注意:aspnet_state是以windows服务形式运行的,所以请先确保127.0.0.1对应的机器上该服务已经启动(ASP.NETStateService服务)。另外如果tcpip=127.0.0.1:42424中的IP地址指定为另外一台服务器,意味着可以将session保存在web服务器以外的机器上
热心网友一:原因:
打开一个新的窗口要分两种情况:1.两个ie是不同进程:这时新ie并没有已打开窗口的资源(也就是sessionid)当然是不同的session
2.新开窗口与上个窗口是同一个进程,即不同线程,这样新窗口可以共享已有资源(sessionid)这样的两个窗口是同一session
你的情况是因为两个ie是不同进程了,和新开ie是一个道理,服务器一定会给你一个新的session
二、要解决你的问题只能保存SESSIONID,有三种方法:
1、COOKIE保存ID 2、URL保存ID 3、隐藏域保存ID
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)