①.Inproc是缺省的设置
表示会话状态要由ASP.NET存储到内存中,而且不用Cookie来传递会话ID。
示例:
②.mode属性设为Off
整个网站禁用会话状态,可在Web.config文件中将sessionState元素的mode属性设为Off。
假如某个网页不需要访问Session对象,应将那个页的Page预编译指令的EnableSessionState属性设为False。
③.StateServer会话管理
示例:
端口修改:
通过在cmd中输入指令regedit来修改注册表
HKLM\SYSTEM\CurrentControlSet\Services\aspnet_state中的Port值
④.用SQL Server进行会话管理
具体配置如下:
①、运行Framewor安装目录下的InstallSqlState.sql文件,framework的安装目录为C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319
②、这时会提示错误,因为该应用没有注册。此时需要在命令行下注册该应用,运行如下命令:
aspnet_regsql.exe -ssadd -sstype c -d -S -U -P
注:为数据库名为ASPState ,为数据库实例名像 IBM-PC\SQLEXPRESS (若数据库不是2005的不要写ip地址,否则会连接失败),为sa(或与sa同等权限的), 为 sa用户名的密码会话定义成功,但是会提示在web应用中进行相应的配置,此时查看SQLServer会发现增加了数据库ASPState,但是没有表。
![](/qrcode.jpg)
③、在命令行下运行如下命令:aspnet_regsql.exe -ssadd -sstype p -S -U -P
该命令对此应用进行了持久化操作。这时会看到ASPState数据库里面多了两张表,ASPStateTempSession就可以用来保存Session。应用时,需要在webconfig中添加如下配置:
配置节点为:<sessionState mode=“SQLServer” sqlConnectionString="server=;database=;uid=;pwd=;"cookieless=“false” timeout=“20” />如下:
虽然timeout设置的是20分钟但是 过期以后仍然可以获取到session的值。