使用SQL Server数据库保存Session
一.设置数据库
方法1:向数据库中添加session相关信息,可以使用官方工具
命令提示符cmd中执行:
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
aspnet_regsql.exe -S 【服务器】 -U 【登录名】 -P 【密码】 -d 【数据库名】 -ssadd -sstype c
例如:
aspnet_regsql.exe -S 127.0.0.1 -U sa -P 123456 -d test -ssadd -sstype c
提示
成功
方法2:直接sql脚本倒入
执行方法1后,再生成脚本一下方便以后使用,直接执行脚本和方法1结果一样。
需要执行两个脚本一个脚本是配置数据库,另一个脚本是添加数据库作业,session的过期就是靠数据库作业处理。要不然不会删除session。
二.配置web.Config
<sessionState mode="SQLServer"allowCustomSqlDatabase="True" sqlConnectionString="server=127.0.0.1; database=test;uid=sa ;pwd=123456;" timeout="20"/>
解释:
mode,会话状态模式,SQLServer为存储到SQLServer数据库。
allowCustomSqlDatabase,值指定会话状态 SQL 数据库是否可以是自定义数据库(而不是 ASP.NET 默认数据库)。 如果为 false,则不能指定初始目录或数据库作为 sqlConnectionString 特性的值。 默认会话状态 SQL 数据库为 ASPState 数据库。默认false
sqlConnectionString,连接字符串
完成。
具体sessionState配置信息解释查看官方文档http://msdn.microsoft.com/zh-cn/library/h6bb9cz9(v=vs.100).aspx
注意:启动QSL Server代理不然不会删除session,打开数据库管理最后一个就是代理