日期:2014-05-19  浏览次数:20455 次

关于SESSION丢失的问题
相同的一套程序布署在不同的服务器上
如:168.168.0.21与168.168.0.22

在对这两台服务器上的WEB页面切换访问时,
其中前一个访问的服务器的session就丢失

如,我先访问168.168.0.21/default.aspx并登录
若再访问168.168.0.22/default.aspx并登录,是168.168.0.21上的Session就会丢失
注:两台服务器上的程序是一模一样的
请问是什么原因造成的?谢谢


------解决方案--------------------
Session还是Cookie?
按理说只有关闭浏览器和超时才会丢Session,你开两个浏览器分别访问试试。
------解决方案--------------------
两台服务器session应该就是要丢失的,session默认是存储在本地服务器的内存中,两台不同的机器即使一样的程序肯定得不到session
解决方法就是把session写入到存储中,比如连接时候的传递session信息,也有很多推荐把session写入数据库中,这也是net下选择session存储位置的选择之一。你看看相关资料怎么把session存到数据库中
------解决方案--------------------
启用status server
------解决方案--------------------
"在对这两台服务器上的WEB页面切换访问时,
其中前一个访问的服务器的session就丢失 "
---------
要开两个窗体啊,一切换当然前一个就没了
------解决方案--------------------
帮顶
------解决方案--------------------
试试,在WINDOWS服务中保存SESSION,也就是说启动ASP.NET Windows(ASP.NET State Service)服务。然后在Web.Config中修改如下:
168.168.0.21的服务器上
<configuration>
<system.web>
mode= "StateServer "
stateConnectionString= "tcpid=168.168.0.21:42424 "/>
</system.web>
</configuration>

168.168.0.22的服务器上:
<configuration>
<system.web>
mode= "StateServer "
stateConnectionString= "tcpid=168.168.0.22:42424 "/>
</system.web>
</configuration>
个人想法。也没实验过!!没你那么好的条件两台服务器!!
------解决方案--------------------
可能是内存太小,或者及其运行的程序太多