【问题标题】:What is Shared State in an ASP.NET MVC Application?什么是 ASP.NET MVC 应用程序中的共享状态?
【发布时间】:2010-11-06 18:21:04
【问题描述】:
在最近的Stackoverflow podcast (#59) 中,Jeff Atwood 提到 Stackoverflow 有一些“共享状态”。我了解共享状态的一般概念,但在 ASP.NET MVC 应用程序(如 Stackoverflow)的上下文中,共享状态到底是什么?
具体来说,我想知道以下几点:
- 它看起来像什么?您如何在荒野中发现它?
- 它给系统带来了哪些限制?
- 你如何摆脱它?
- 如果情况如此糟糕,为什么会有人
将其包含在他们的设计中?
【问题讨论】:
标签:
asp.net-mvc
shared-state
【解决方案1】:
听完最新的Stackoverflow podcast,我明白了Jeff所说的共享状态。
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