ASP.NET MVC应用程序中的共享状态是什么?

时间:2009-06-29 17:25:46

标签: asp.net-mvc shared-state

在最近的Stackoverflow podcast (#59)中,Jeff Atwood提到Stackoverflow有一些“共享状态”。我理解共享状态的一般概念,但是在ASP.NET MVC应用程序(如Stackoverflow)的上下文中究竟是什么共享状态?

具体来说,我想知道以下内容:

  1. 它看起来像什么?你怎么在荒野中发现它?
  2. 它给系统带来了哪些限制?
  3. 你怎么摆脱它?
  4. 如果它太糟糕了,为什么会有人 将它包含在他们的设计中?

1 个答案:

答案 0 :(得分:1)

在听完最新的Stackoverflow podcast之后,我发现了杰夫所说的共享状态。

<强> 1。它是什么样子的?你如何在荒野中发现它?

Jeff指的是在ASP.NET MVC中使用Session变量。

<强> 2。它给系统带来了哪些限制?

如果配置不正确,使用会话变量可以将用户绑定到特定的Web服务器。如果用户在请求之间在不同的Web服务器之间跳转,则Session变量中的数据将不可用。

第3。你怎么摆脱它?

您可以通过将Session变量持久保存到可从所有Web服务器访问的数据库来消除共享状态。 ASP.NET提供了一个将Session变量免费保存到数据库的选项,但出于某种原因,Jeff不愿意使用此功能。他提到他喜欢删除代码,但是他决定推出自己的机制来将会话状态保存到数据库中。

<强> 4。如果它太糟糕了,为什么会有人将它包含在他们的设计中呢?

因为当你编码时它就在那里而且很容易。

alt text http://www.codeproject.com/KB/mobile/DeepCast/easy-button.jpg