如下是Web.config如何配置Session的:
<configuration>
<system.web>
<sessionState mode=" Off | InProc | StateServer | SQLServer "
cookieless=" true | false "
timeout=" number of minutes "
stateConnectionString=" tcpip=server:port "
sqlConnectionString=" sql connection string "
stateNetworkTimeout=" number of seconds " />
</system.web>
</configuration>
其中各个节点属性:
mode: Session的存储方式(必有的属性)。
InProc:将Session存到进程内(这是Default值。)
off:禁用Session.
StateServer:将Session存到独立的状态服务中(Asp.net State Service).
SqlServer:将Session存到SqlServer中。
Cookieless:设置客户端Session存储的方式。
false:使用Cookie模式(default).
true:使用Cookieless模式。
timeout:设置Session过期时间(default is 20 minutes)
stateConnectionString: 设置Session独立存放的状态服务所在服务器的名称(地址)和端口号,当
mode=stateserver时,这个属性就是必须的。
sqlConnectionString:设置与Sqlserver的连接字符串,当mode="sqlserver"时,这个属性时必须的。
stateNetWorkTimeout:设置当mode=StateServer时,经过多少秒空闲后, 断开web服务器与存储状态信息服务器
的TCP/IP连接(default is 10 seconds).
/*******************************************************************/
asp.net中客户端Session的存储。
asp.net中,默认是使用Cookie存储Session的,如果是将cookieless="false",改成 cookieless="true",则
session就不用cookie来存储了,而是使用url来存储。
asp.net服务器端session存储在进程内(inproc)
当mode="Inproc"时,服务器的Session存储在IIS进程中,当IIS关闭,重启时,这些Session信息就会丢失,但这
种模式最大的 好处就是性能提高。
asp.net服务器端Session存储在进程外(StateServer)
当mode="StateServer"时,服务器的Session就存储在"ASP.NET State Server"这个服务的进程中,在服务中找到
名为:ASP.NET State Service的服务,启动这个服务,在资源管理器的进程中就能找到一个名
为:aspnet_state.exe"的进程,这个就是我们保存 Session的进程。
ASP.NET State Server"服务可以与Web服务器分开.eg:web服务器在192.168.0.100上,asp.net
state service"服务在192.168.0.101上,则可以进行设置:
mode="StateServer" stateConnection="tcpip=192.168.1.101:42424".
asp.net服务器端Session存储到SQLServer中(SQLServer),
当mode="sqlserver"时,服务器的Session就是存储到Sql server中建立一个存储Session的数据库。在
%windir%\Microsoft.NET\Framework\v2.0.50727 下有个名为: InstallSqlState.sql 的sql脚本文件. 这个脚本
是专门用来建存储Session的数据库以及一个维护Session信息数据库的SQL Server代理作业的.
执行此sql脚本后,会看到一个新增的aspstate数据库,但这个数据库中,只有存储过程,没有用户表,用
户表放到了tempdb这个数据库中去 了,ASpstateTempSessions和ASPStateTempApplications,Session信息存储到
了 ASPStateTempApplication存储了asp中Application对象信息。
<configuration>
<system.web>
<sessionState mode=" Off | InProc | StateServer | SQLServer "
cookieless=" true | false "
timeout=" number of minutes "
stateConnectionString=" tcpip=server:port "
sqlConnectionString=" sql connection string "
stateNetworkTimeout=" number of seconds " />
</system.web>
</configuration>
其中各个节点属性:
mode: Session的存储方式(必有的属性)。
InProc:将Session存到进程内(这是Default值。)
off:禁用Session.
StateServer:将Session存到独立的状态服务中(Asp.net State Service).
SqlServer:将Session存到SqlServer中。
Cookieless:设置客户端Session存储的方式。
false:使用Cookie模式(default).
true:使用Cookieless模式。
timeout:设置Session过期时间(default is 20 minutes)
stateConnectionString: 设置Session独立存放的状态服务所在服务器的名称(地址)和端口号,当
mode=stateserver时,这个属性就是必须的。
sqlConnectionString:设置与Sqlserver的连接字符串,当mode="sqlserver"时,这个属性时必须的。
stateNetWorkTimeout:设置当mode=StateServer时,经过多少秒空闲后, 断开web服务器与存储状态信息服务器
的TCP/IP连接(default is 10 seconds).
/*******************************************************************/
asp.net中客户端Session的存储。
asp.net中,默认是使用Cookie存储Session的,如果是将cookieless="false",改成 cookieless="true",则
session就不用cookie来存储了,而是使用url来存储。
asp.net服务器端session存储在进程内(inproc)
当mode="Inproc"时,服务器的Session存储在IIS进程中,当IIS关闭,重启时,这些Session信息就会丢失,但这
种模式最大的 好处就是性能提高。
asp.net服务器端Session存储在进程外(StateServer)
当mode="StateServer"时,服务器的Session就存储在"ASP.NET State Server"这个服务的进程中,在服务中找到
名为:ASP.NET State Service的服务,启动这个服务,在资源管理器的进程中就能找到一个名
为:aspnet_state.exe"的进程,这个就是我们保存 Session的进程。
ASP.NET State Server"服务可以与Web服务器分开.eg:web服务器在192.168.0.100上,asp.net
state service"服务在192.168.0.101上,则可以进行设置:
mode="StateServer" stateConnection="tcpip=192.168.1.101:42424".
asp.net服务器端Session存储到SQLServer中(SQLServer),
当mode="sqlserver"时,服务器的Session就是存储到Sql server中建立一个存储Session的数据库。在
%windir%\Microsoft.NET\Framework\v2.0.50727 下有个名为: InstallSqlState.sql 的sql脚本文件. 这个脚本
是专门用来建存储Session的数据库以及一个维护Session信息数据库的SQL Server代理作业的.
执行此sql脚本后,会看到一个新增的aspstate数据库,但这个数据库中,只有存储过程,没有用户表,用
户表放到了tempdb这个数据库中去 了,ASpstateTempSessions和ASPStateTempApplications,Session信息存储到
了 ASPStateTempApplication存储了asp中Application对象信息。