【问题标题】:ASP.NET "Re-establish Session" Performance HitASP.NET“重新建立会话”性能命中
【发布时间】:2013-02-21 04:39:17
【问题描述】:

在用户最初与 ASP.NET 建立会话后,对于每个后续 HTTP 请求,有多少 StateServer 会话对象被立即自动获取和反序列化?例如:

  1. 在收到请求并重新建立会话时是否已获取 所有 个会话对象,或者...
  2. 会话重新建立后,每次对 HttpContext.Session["..."] 的请求发出时,会话对象会被单独提取和反序列化吗?

答案对我如何使用会话有巨大影响。例如,如果我已将大量用户数据预取到会话中,并且 StateServer 会话在每个 HTTP 请求时完全反序列化,那么我将体验到明显的性能损失。但是,如果仅在我请求特定会话密钥时才反序列化预取的用户数据,那么对我来说就不用担心了。

更新 在标记了这个问题的答案后,我发现ASP.NET with AppFabric Server 1.1 has an option to have session restored on-demand rather than all-at-once。这由您的 web.config 中的useBlobMode 控制。

【问题讨论】:

    标签: asp.net performance session


    【解决方案1】:

    Session 在页面首次加载时加载所有用户Session 信息。然后在页面处理完成后将用户的 Session 信息持久化回存储。

    您可以通过 custom state store implementations 上的 MSDN 获得更好的理解。

    这是您应该尽可能少使用 Session 的一个主要原因,因为它的处理成本很高(无论是在数据存储的传输和从内存中保存数据的生命周期中)页面请求)。

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      相关资源
      最近更新 更多