Session 一般的操作是放在本地的Asp.net StatService上。实现进程隔离,方便Session操作,下面说说Session各属性。
1)不使用Session
<sessionState mode="off">
2)跟IIS本地的进程走
<sessionState mode="InProc" cookieless="false" timeout="20" />
特点:存储在IIS的进程中,IIS重启或者修改站点bin下的文件,Session失效。
3)单独创建进程或者服务器,保存Session。
<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" />
特点:存储在进程Asp.net State Service上。可以保存在本地也可以保存在其他服务器上。IIS重启等操作不会影响到Session值。只有重启服务Asp.net State Service,才会更新Session值;进程隔离;负载均衡
4)用SQL Server进行会话管理
<sessionState mode="SqlServer" stateConnectionString="”>
特点:由于数据不存储在本地内存,所以存储会话状态的对象需要进行序列化和反序列化,以便通过网络传给数据库服务器,以及从数据库服务器传回。这当然会影响性能。通过在数据库中存储会话状态,可分别针对扩展性及可靠性来有效地平衡性能。另外,可以利用SQL Server的集群,使状态存储不依赖于单个的SQL Server, 这样就可以为应用程序提供极大限度的可靠性。
做一头勤恳的技术牛