【问题标题】:Server Side State Management服务器端状态管理
【发布时间】:2014-07-28 02:15:55
【问题描述】:

我想知道 ASP.NET MVC 中的分布式应用程序是否必须存储全局 几乎没有变化的信息,哪些服务器端状态管理选项更受青睐——应用程序状态、会话状态、数据库支持、配置文件属性?我认为它的会话状态和数据库支持。

【问题讨论】:

  • 这是什么信息?如果它是全局的并且几乎没有变化,那么您可以将它放在关系数据库表中吗?或者,如果您使用的是 Azure、Blob 存储或 SQL Azure?
  • 会话是最好的选择。

标签: asp.net-mvc


【解决方案1】:

这是来自 MS MVC4 考试转储的一个问题,有多项选择答案 :) 我目前正在学习相同的...有问题的关键字是“全球”和“分布式” - 所以,就我而言理解:

a) 应用程序 - 仅在当前应用程序线程中是“全局”的,不会同步到 Web 农场的其余部分,即不是“分布式”

b) 会话 - 无效:仅限用户 = 非“全局”

c) 数据库 - 有效答案

d) 配置文件 - 无效:持久化,但仅限于用户 = 非“全局”

这就是微软考试题的问题所在,这完全取决于你如何阅读问题——从技术上讲,应用程序状态也是一个正确答案,因为数据对于应用程序来说是全局的,并且问题没有提到数据应该通过森林持久化。

如果我在明天的考试中出现这个问题,我会说应用程序和数据库,并在备注部分写下这个推理。祝我好运:)

【讨论】:

    【解决方案2】:

    如果信息仅与特定用户相关,您可以将其存储在会话状态/cookies 中。例如存储用户电子邮件/地址等。

    如果你想缓存网页的一部分,你可以使用Output Caching

    [OutputCache(Duration = 3600)]
    

    如果你有一个单一的网络服务器,你可以使用应用缓存来存储一些常用的数据/列表。

    如果你有一个网络农场(多台服务器),你可以使用类似ncache

    如果您将 nHibernate 用于 DB ORM,则可以使用 nhibernate 二级缓存

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-16
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 2020-05-13
      • 2010-10-29
      • 1970-01-01
      相关资源
      最近更新 更多