【发布时间】:2010-09-28 01:52:20
【问题描述】:
由 ASP.NET 团队推荐使用缓存而不是会话,我们在过去几年中停止使用会话来处理 WebForm 模型。所以我们通常在 web.config 中关闭会话
<sessionState mode="Off" />
但是,现在当我使用此设置测试 ASP.NET MVC 应用程序时,它会在 mvc 框架内的 SessionStateTempDataProvider 类中引发错误,它要求我打开会话状态,我做到了并且它工作正常。查看它使用会话的源代码:
// line 20 in SessionStateTempDataProvider.cs
Dictionary<string, object> tempDataDictionary =
httpContext.Session[TempDataSessionStateKey] as Dictionary<string, object>;
那么,他们为什么要在这里使用 session 呢?我错过了什么?
================================================ =========
编辑 抱歉,这篇文章并不是要讨论会话与缓存,而是在 ASP.NET MVC 的上下文中,我只是想知道为什么在这里使用会话。在这个blog post 中,Scott Watermasysk 也提到关闭会话是一种很好的做法,所以我只是想知道为什么我必须打开它才能从这里开始使用 MVC。
【问题讨论】:
-
您能否提供一个链接,指向他们所说的“使用缓存而不是会话”,因为它们并不是真正意义上的同一件事?
-
如果我没记错的话,我是在 2005 年 9 月的 MSDN 杂志上读到的。也许我应该说得更好,但我们完全不使用会话。
-
他说:“Tip: Disable session state when not in use.”,很少有没有在认证区域使用的会话。
-
如果 Scott 链接不再起作用。
-
顺便说一句,可以阅读 2005 年 9 月号 MSDN 杂志上关于会话状态的文章here -- 请注意它指的是 ASP.NET 2.0 的预发布版本跨度>