存储ASP.NET会话变量的最佳解决方案是什么? StateServer还是SQLServer?

前端之家收集整理的这篇文章主要介绍了存储ASP.NET会话变量的最佳解决方案是什么? StateServer还是SQLServer?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
StateServer还是sqlServer?

>存储ASP.NET会话变量的最佳解决方案是什么?
>每个的优点和缺点是什么?
>在任何特定情况下,一个人比其他人好吗?

解决方法

这里有关于pro / con的一些想法.
我还添加了Microsoft Velocity Distributed Caching解决方案.

InProc的优点

>最快可选(全部内存/内存)
>易于设置(.config文件中没有新的要求..我认为这是默认行为).
>我认为大多数人都会使用这个.

InProc的缺点

>如果网站(应用程序池)死亡,则所有会话信息都将丢失.
>在WebFarm场景中不起作用 – >会话信息仅适用于每个应用程序池.
>不能包含非会话信息.

Pro用于StateServer

>在内存/内存中,所以速度很快(但有一些净延迟…请参阅下文),因此它可能没有Inproc快.
> Web场方案的默认配置.多个iis站点使用状态服务器来控制状态会话信息.

适用于StateServer的Con’s

>需要将ASP.NET StateServer服务设置为运行.
> StateServer需要一些配置调整来接受“远程iis机器”请求.
>如果iis请求需要在另一台联网计算机上获取/设置会话信息,则会有一些微小的网络延迟.
>不能包含非会话信息.

Pro用于sqlServer(作为状态服务器)

>即使在iis站点重新启动后,也始终保留状态.

sqlServer的Con(作为状态服务器)

>最慢的解决方案 – >净延迟和硬盘驱动器延迟(因为sql server将状态存储在硬盘上/从硬盘读取).
>最难设置/配置.
>不能包含非会话信息

Pro for Velocity(或其他分布式缓存系统)

>可以处理的不仅仅是会话信息 – >对象,应用程序设置,缓存等(这是一个非常好的东西IMO !!)
>可以仅存储或存储到数据库.
>如果一个“节点”发生故障,系统仍然有效. (假设有2个缓存节点)

Con的Velocity(或其他分布式缓存系统)

>一般成本$$$>最难设置(必须安装东西,调整配置,添加额外的specal代码).>具有网络延迟(通常没有),但如果服务持久化数据(例如,到sql Server),可能会有硬盘延迟.

猜你在找的asp.Net相关文章