加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:36:45 所属栏目:asp.Net 来源:网络整理
导读:StateServer还是SQLServer? 存储ASP.NET会话变量的最佳解决方案是什么? 每个的优点和缺点是什么? 在任何特定情况下,一个人比其他人好吗? 解决方法 这里有关于pro / con的一些想法. 我还添加了Microsoft Velocity Distributed Caching解决方案. InProc的
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),可能会有硬盘延迟.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读