存储ASP.NET会话变量的最佳解决方案是什么? StateServer还是SQLServer? [英] What is the best solution for storing ASP.NET session variables? StateServer or SQLServer?
本文介绍了存储ASP.NET会话变量的最佳解决方案是什么? StateServer还是SQLServer?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
StateServer还是SQLServer?
StateServer or SQLServer?
- 存储ASP.NET会话变量的最佳解决方案是什么?
- 每种都有什么优缺点?
- 在任何特定情况下,有没有比其他更好的了?
推荐答案
以下是有关专业人士/专业人士的一些想法. 我还添加了Microsoft Velocity分布式缓存解决方案.
Here's some thoughts about pro's/con's. I've also added Microsoft Velocity Distributed Caching solution.
- 最快的可选选项(全部在内存/内存中)
- 易于设置(.config文件中没有任何新要求.我认为这是默认行为).
- 我相信大多数人都会使用它.
- 如果网站(应用程序池)死亡,那么所有会话信息都将丢失.
- 在WebFarm方案中不起作用->会话信息仅针对每个应用程序池.
- 不能包含非会话信息.
- 在内存/内存中,它速度很快(但是有一些净延迟.请阅读下文),因此它可能不如Inproc快.
- Web服务器场方案的默认配置.多个iis站点使用状态服务器来控制状态会话信息.
- 需要将ASP.NET StateServer服务设置为运行.
- StateServer需要进行一些配置调整,以接受远程iis机器"请求.
- 如果iis请求需要在另一台联网计算机上获取/设置会话信息,则网络延迟很小.
- 不能包含非会话信息.
- 即使iis站点重新启动,状态也始终保留.
- 最慢的解决方案->净延迟和硬盘驱动器延迟(因为sql服务器将状态存储在硬盘上/从硬盘读取).
- 最难设置/配置.
- 不能包含非会话信息
- 不仅可以处理会话信息->对象,应用程序设置,缓存等.(这是IMO非常好的东西!!)
- 只能是内存,也可以保留到数据库.
- 如果一个节点"发生故障,系统仍将正常工作. (假设有2个以上的缓存节点)
- 通常花费$$
- 最难以设置(必须安装内容,调整配置,添加额外的特殊代码).
- 具有网络延迟(通常没有任何延迟),但是如果服务保留数据(例如到Sql Server),则可能具有硬盘延迟.
这篇关于存储ASP.NET会话变量的最佳解决方案是什么? StateServer还是SQLServer?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文