一、InProc模式(缺省模式)
<sessionState mode="InProc" timeout="20"></sessionState>
优点:获取session状态的速度快,session状态直接存储在iis的进程中。
缺点:易丢失,经常需要重新登录
二、StateServer模式
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" ></sessionState>
注意:1. 这时应先启动 ASP.NET State Service服务
2、session中的对象要序列化
3、.默认端口是42424 可以在如下路径中进行设置端口,也可配置是否进行远程连接(1:允许,0禁止)
优点:session状态单独存储在一个进程中,不会因为iis或者应用的重启而丢失状态
缺点:获取session状态的速度比InProc慢一些,空间有限。
三、SQLServer模式
<sessionState mode="SQLServer" sqlConnectionString="server=127.0.0.1;uid=**;pwd=***">/sessionState>
在C:\Windows\Microsoft.NET\Framework\v4.0.30319路径下(视情况)执行脚本:
临时存储区:InstallSqlState.sql
永久存储区:InstallPersistSqlState.sql
完毕后会在数据库中生成ASPState数据库,同时在Sqlserver代理中会生成一个作业ASPState_Job_DeleteExpiredSessions,用来回收过期的session。
session中的对象要序列化