首页 新闻 会员 周边 捐助

如何在更新Web站点时,不让正在线上的用户被踢出来?

0
悬赏园豆:10 [已解决问题] 解决于 2013-07-07 23:24

作为一个网站开发人员或者维护人员,常常会更新Web站点,但是当Web站点被更新时,正在线上的用户,总是被强制登出,因为服务器端的SessionID已被清除,那如何不让用户登出呢?

EEcho的主页 EEcho | 初学一级 | 园豆:3
提问于:2013-07-05 16:50
< >
分享
最佳答案
0

我用sessionstate服务来存的,更新没有任何问题。

收获园豆:10
happydaily | 菜鸟二级 |园豆:260 | 2013-07-07 11:26

多谢对于sessionstate关键词的提供,通过查找这个,我找到一篇文章,大致可以解决我的问题http://www.cnblogs.com/snlfq2000/archive/2009/11/15/1603234.html

EEcho | 园豆:3 (初学一级) | 2013-07-07 23:23
其他回答(10)
0

session序列化

在大地画满窗子 | 园豆:102 (初学一级) | 2013-07-05 16:50

谁序列化?序列化后放在哪里?然后网站更新完毕后,IIS如何再读取这些session?

支持(0) 反对(0) EEcho | 园豆:3 (初学一级) | 2013-07-05 17:07

@EEcho:

只是提供一个思路:

服务器没有序列化的话,可以在程序中序列化。

可以存到文件里,也可以存到数据库中。在更新完重启时,读入session数据。

 

楼下的想法蛮好,给用户的感觉是服务器没有中断过。对服务端的实例逐个更新。这个需要conncetor和服务器分开吧

支持(0) 反对(0) 在大地画满窗子 | 园豆:102 (初学一级) | 2013-07-05 17:17
0

同时有多个server的instance, 跟新的时候用户连接其他的

iTech | 园豆:202 (菜鸟二级) | 2013-07-05 17:00

多个server的instance?不明白,能不能讲具体些呀,用户正在连着server1,那我如何给嫁接到server2上呢

支持(0) 反对(0) EEcho | 园豆:3 (初学一级) | 2013-07-05 17:06
0

使用独立的状态服务器,比如 session 可以支持保存在数据库中,或者 Memcached 中,当然也可以自己重写。

Astar | 园豆:40805 (高人七级) | 2013-07-05 17:39

状态服务器是就像邮件服务器那种性质的吗?也就是说,状态服务器也是可以人为写一些服务专门检测IIS的状态?或者某网站的状态,在监测到网站重启前,就先把session存起来?启动后,再把session放出来?

支持(0) 反对(0) EEcho | 园豆:3 (初学一级) | 2013-07-05 17:48
0

可以选择深夜更新

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-07-05 18:31
0

想办法session 不丢就可以,如把session保存在sqlserver ,或者自定义session保存在Memcached

Tom.汤 | 园豆:3060 (老鸟四级) | 2013-07-06 13:36
0

的确,需要一个统一的持久化保存你需要信息的载体。

Zachary_Fan | 园豆:762 (小虾三级) | 2013-07-06 15:56
0

session保存到数据库

Arthur.Wang | 园豆:25 (初学一级) | 2014-01-22 10:47
0

断了断了,重新登陆,必须了,

极品菜鸟 | 园豆:95 (初学一级) | 2014-03-29 15:04
0

得看具体业务系统要求了,用户正在提交一个表单,服务发生了重启,即使用了事务,用户还是有需要再次提交的麻烦。所以最好的办法是深夜更新。这就是为什么电信移动运营商为什么都在凌晨更新的缘故。

二师弟tl | 园豆:204 (菜鸟二级) | 2014-10-24 16:18
0

如果是为了验证用户,保存到stateserver治标不治本,应该采用forms认证

test1001 | 园豆:194 (初学一级) | 2015-04-10 12:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册