Session 存储和失效方式

 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, 这样就可以为应用程序提供极大限度的可靠性。

做一头勤恳的技术牛

原文地址:https://www.cnblogs.com/chinaagan/p/3200456.html