asp.net中提供了三种session的存储方式。
一种是常规方式,就是存储在asp.net服务器进程中,这种是最容易丢失的。进程池的回收、服务进程的崩溃,都会导致你网站的访客无缘无故被退出登录。
一种是StateServer,他是服务器上的一个系统服务。如果您已经打开了这项系统服务,即可在任务管理器中可以查看到名为aspnet_state.exe的进程。
一种是保存在sqlserver中
如果保存在sqlserver中:
1.需要一个保存session的数据库。在本机或者远程创建一个aspstate的session数据库,
aspnet_regsql.exe -S <SQL Server IP> -U <User Name> -P <Password> -E -ssadd -sstype c -d <Database Name>
实际操作中,开始运行:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -S . -U sa -P hy -ssadd -sstype c -d aspstate
2.Web.Config文件配置项
我们需要在ASP.NET Web应用程序中的Web.Config文件修改sessionState配置项以使Session状态数据库生效。
配置节点如下:
system.web下加
<sessionState mode="SQLServer" sqlConnectionString="server=.;database=aspstate;user=sa;pwd=hy" allowCustomSqlDatabase="true" cookieless="false" timeout="20"></sessionState>
SQL Server代理agent服务
4.对象要可序列化