[Session Management] State Server 管理 Session

公司计划升级所有电脑的操作系统,在导入的前置准备阶段,进行系统测试时,居然发现~~


公司计划升级所有电脑的操作系统,

在导入的前置准备阶段,进行系统测试时,

居然发现~~

负责的线上系统,如果由IE6 升级 IE8 之后的版本,

会发现使用者打完账号与密码登入后,开始鬼打墙的情况,

一直出现登入首页的情况。

写了一些测试程序,发现,原来是Session的问题,

由于系统有采用Hardware NLB的设定,

而且登入后的网页,有再触发另开新一个窗口,

发现两个窗口的Physical Host IP是不一样的,

Session无法在两台不同的Server间共用。

于是乎,很用力的来去Google看有没有什么前车之鉴可以参考,

发现,其实蛮多人遇到这个问题。

解决方法就是要采用Session Management,

主要分为两种方法(1) Inproc (2) Outproc

其中Outproc又分两种方法(a)State Server (b) SQL Server

每个方法各有其不同的优缺点。

目前我是选择State Server的作法,

很多文章都说,以性能来说存取速度比SQL Sever来的好,

但是,可能会对State Server的内存需求较大,

所以,上线后有三不五时去观察一下State Server上的内存,

本人还是怕会弄挂一堆其它同事负责的系统。

Satae Server设定的步骤大致如下:

(1)使用regedit修改系统注册表

(2)找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesaspnet_stateParametersPort 将 AllowRemoteConnection 改成 1

PS1.视需要修改Port Number(默认为42424)

PS2.注意防火墙的Port也要设定,像我是Internet --> Intranet ,就需要变更相关设定

(3)到[服务],将[ASP 状态服务]设定启动

  • 二台AP WebConfig设定

    mode="StateServer"

    stateConnectionString="tcpip=Server ip:42424"

    stateNetworkTimeout="10"

    cookieless="false"

    timeout="20"

    />

PS1.cookieless也是要依本身条件选择

PS2.也要记得将两台的Machine Key设定相同,才会用统一的规则去存取State Server的数据

  • 参考网址:

Config参数设定说明

http://msdn.microsoft.com/zh-tw/library/h6bb9cz9(VS.80).aspx

不知道未来,还会不会遇到这种类似情况,还是记录下来~~

之后,总是有个地方可以再查阅。

原文:大专栏  [Session Management] State Server 管理 Session


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11505537.html