gpt4 book ai didi

asp.net - 存储 ASP.NET session 变量的最佳解决方案是什么? StateServer 还是 SQLServer?

转载 作者:行者123 更新时间:2023-12-04 05:44:58 26 4
gpt4 key购买 nike

StateServer 还是 SQLServer?

  • 存储 ASP.NET session 变量的最佳解决方案是什么?
  • 各自的优缺点是什么?
  • 在任何特定情况下,一个比另一个更好吗?
  • 最佳答案

    这里有一些关于赞成/反对的想法。
    我还添加了 Microsoft Velocity 分布式缓存解决方案。
    InProc 的优点

  • 可用的最快可选(全部在内存/ram 中)
  • 易于设置(.config 文件中不需要任何新内容。我认为这是默认行为)。
  • 我相信大多数人都使用这个。

  • InProc 的缺点
  • 如果网站(应用程序池)死掉,那么所有的 session 信息都会丢失。
  • 在 WebFarm 方案中不起作用 -> session 信息仅针对每个应用程序池。
  • 不能包含非 session 信息。

  • StateServer 的专业版
  • 在内存/内存中,所以它很快(但有一些净延迟......阅读下面),所以它可能不如 Inproc 快。
  • Web 场方案的默认配置。多个 iis 站点使用状态服务器来控制状态 session 信息。

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

  • SqlServer 的 Pro(作为状态服务器)
  • 状态始终保留,即使在 iis 站点重新启动后也是如此。

  • Con's for SqlServer(作为状态服务器)
  • 最慢的解决方案 -> 净延迟和硬盘延迟(因为 sql server 将状态存储在硬盘上/从硬盘读取)。
  • 最难设置/配置。
  • 不能包含非 session 信息

  • Pro's for Velocity(或其他分布式缓存系统)
  • 可以处理的不仅仅是 session 信息 -> 对象、应用程序设置、缓存等(IMO 这是一件非常好的事情!!)
  • 可以是仅内存或持久化到数据库。
  • 如果一个“节点”出现故障,系统仍然可以工作。 (假设有 2 个以上的缓存节点)

  • Con's for Velocity(或其他分布式缓存系统)
  • 一般费用$$$
  • 最难设置(必须安装东西,调整配置,添加额外的特殊代码)。
  • 有网络延迟(通常没有),但如果服务将数据持久化(例如到 Sql Server),则可能有硬盘延迟。
  • 关于asp.net - 存储 ASP.NET session 变量的最佳解决方案是什么? StateServer 还是 SQLServer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/224039/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com