1. 程式人生 > >解決IIS設置多個工作進程中Session失效的問題

解決IIS設置多個工作進程中Session失效的問題

OS 進制 註冊表 tcpip session 其中 存在 webconfig tro

利用StateServer實現Session共享

session保存在專門的StateServer中,該種方式,性能損失比sql略好。比inproc據說有10%-15%的性能損失。怎麽使用StateServer 服務器呢?

1、初始化StateServer服務器

啟動ASP.NET 狀態服務【aspnet_state】,該服務默認是手動啟動的,可以通過修改註冊表,設置為自動啟動並允許遠程連接。修改方法如下:

修改註冊表: [HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/aspnet_state/Parameters]
設置 AllowRemoteConnection = 1 , 設置 Port = 42424 (十進制,默認即為42424)
AllowRemoteConnection ,0僅能本機使用,1可以供其他機器使用.
Port是服務的端口號

2、修改webconfig配置文件

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="60"/>

其中stateConnectionString中的tcpip表示StateServer服務器的ip和端口。

註意StateServer不支持負載均衡,如果是大並發請保存在sql中。

解決IIS設置多個工作進程中Session失效的問題