当前位置:  开发笔记 > 后端 > 正文

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

如何解决《存储ASP.NET会话变量的最佳解决方案是什么?StateServer还是SQLServer?》经验,为你挑选了1个好方法。



1> Pure.Krome..:

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

InProc的优点

最快的可选(全部内存/内存)

易于设置(.config文件中没有新的要求..我认为这是默认行为).

我相信大多数人都使用这个.

InProc的缺点

如果网站(应用程序池)死亡,则所有会话信息都将丢失.

在WebFarm场景中不起作用 - >会话信息仅适用于每个应用程序池.

不能包含非会话信息.

Pro用于StateServer

在内存/内存中,所以速度很快(但有一些净延迟......如下所示),因此它可能没有Inproc那么快.

Web场方案的默认配置.多个iis站点使用状态服务器来控制状态会话信息.

适用于StateServer的Con

需要将ASP.NET StateServer服务设置为运行.

StateServer需要一些配置调整来接受"远程iis机器"请求.

如果iis请求需要在另一台联网计算机上获取/设置会话信息,则会有一些微小的净延迟.

不能包含非会话信息.

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

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

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

最慢的解决方案 - >净延迟和硬盘延迟(因为sql server将状态存储在硬盘上/从硬盘读取).

最难设置/配置.

不能包含非会话信息

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

可以处理的不仅仅是会话信息 - >对象,应用程序设置,缓存等(这是IMO非常好的事情!!)

可以只是内存或持久存储到数据库.

如果一个"节点"发生故障,系统仍然有效.(假设有2个以上的缓存节点)

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

一般花费$$$

最难设置(必须安装东西,调整配置,添加额外的specal代码).

具有网络延迟(通常没有),但如果服务持久化数据(例如,到Sql Server),则可能具有硬盘延迟.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有