ASP.NET 中的Session详解
在ASP.NET的程序中要使用Session对象时,必须确保页面的@page指令中EnableSessionState属性是True或者Readonly,并且在web.config文件中正确的设置了SessionState属性。
如:
<!--<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=qazqaz" cookieless="false" timeout="2"/>-->
<!--注意超时时间设置必须大于2分钟,建议为60分钟,也即1个小时,这样不容易因为短线就发生session超时问题-->
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" stateNetworkTimeout="1000" customProvider="" cookieless="UseCookies" cookieName="ASP.NET_SessionId" timeout="60" allowCustomSqlDatabase="false" regenerateExpiredSessionId="true" partitionResolverType="" useHostingIdentity="true"/>
<!--<sessionState mode="SQLServer" sqlConnectionString="server=192.168.69.27 ;database=sessionsave;uid=sa;pwd=gpsdbsa;" allowCustomSqlDatabase="true" cookieless="false" timeout="2000" />-->
mode=”StateServer”
stateConnectionString="tcpip=127.0.0.1:42424"
要配置SQL Server 服务器,可以在命令行中运行SQL Server提供的命令行工具osql.exe
例如:
做好必要的数据库准备工作后,将web.config文件中的sessionstate元素的mode属性改为”sqlserver”,并指定SQL连接字符串。具体如下:
使用SQLServer模式处了可以使Session的状态不依赖于IIS服务器之外,还可以利用SQL Server的集群,使状态存储不依赖于单个的SQL Server,这样就可以为应用程序提供极大的可靠性。