这里有一些关于pro/con的想法.我还添加了Microsoft Velocity Distributed Caching解决方案.
最快的可选(全部内存/内存)
易于设置(.config文件中没有新的要求..我认为这是默认行为).
我相信大多数人都使用这个.
如果网站(应用程序池)死亡,则所有会话信息都将丢失.
在WebFarm场景中不起作用 - >会话信息仅适用于每个应用程序池.
不能包含非会话信息.
在内存/内存中,所以速度很快(但有一些净延迟......如下所示),因此它可能没有Inproc那么快.
Web场方案的默认配置.多个iis站点使用状态服务器来控制状态会话信息.
需要将ASP.NET StateServer服务设置为运行.
StateServer需要一些配置调整来接受"远程iis机器"请求.
如果iis请求需要在另一台联网计算机上获取/设置会话信息,则会有一些微小的净延迟.
不能包含非会话信息.
即使在iis站点重新启动后,也始终保留状态.
最慢的解决方案 - >净延迟和硬盘延迟(因为sql server将状态存储在硬盘上/从硬盘读取).
最难设置/配置.
不能包含非会话信息
可以处理的不仅仅是会话信息 - >对象,应用程序设置,缓存等(这是IMO非常好的事情!!)
可以只是内存或持久存储到数据库.
如果一个"节点"发生故障,系统仍然有效.(假设有2个以上的缓存节点)
一般花费$$$
最难设置(必须安装东西,调整配置,添加额外的specal代码).
具有网络延迟(通常没有),但如果服务持久化数据(例如,到Sql Server),则可能具有硬盘延迟.