浅谈ASP.NET中的三种会话状态
常用的ASP.NET的会话状态中有三种.分为进程内会话状态、状态服务器会话状态、SQL Server 会话状态
先谈谈进程内会话状态(Inprocess)这是一种默认的模式,但是只要在Web.config中进行简单的配置就可进行更改,具体内容下面会进行说明。进程内会话状态是一种最快,但是最不稳定的一种模式。如果重启IIS或服务器的话,会话状态将会消失。这种情况适合在一台服务器中或这没有WEB场的情况中。如果你关注的速度而不是稳定相建议你选择这种方式。
设置如下 <SessionState .... mode="InProc">
状态服务器会话局模式是ASP.NET中的新模式,但是它的速度比进程内会话慢,应为从会话状态到另一种会话状态要穿越不同的服务器和边界,因此会减慢其访问的速度。实际上会话状态是存储在一个名为ASP.NET的单独进程中,使用该进程的话需要将状态服务器设为启动。
ASP.NET状态服务器进程是单独与ASP辅助进程和IIS应用程序池的单独进进程,如果加此进程运行在另一台服务器上的话,甚至可以在IIS或服务器重启的时候保留会话状态,并是会话状态可以运行在WEB场中的多个服务器。
具体设置:
<configuration>
<system.web>
<sessionState mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
cookieless="false"
timeout="20"/>
</system.web>
</configuration>
最后谈谈SQL Server会话状态
SQL Server状会话状态将会话状态保存在一个SQL Sever数据库服务器中,这样保证了存放会话状态的服务器或IIS重启后,可以完全保存之前的会话状态,同时也可以同时使用多台SQL Server服务器构成群集,让多台服务器同时使用会话状态,这样保证了会话状态的稳定性。但是要在SQL Server服务器中是用SQL Server会话状态的话,必须安装ASP.NET会话状态数据库。
具体设置:
<configuration>
<system.web>
<sessionState mode="SQLServer"
sqlConnectionString="Integrated Security=SSPI;data
source=ASPNETServer;" />
</system.web>
</configuration