2011-04-07 72 views
0

我注意到在蔚蓝的例子,他们正在使用:MVC3 StorageSessionStateProvider - 我需要它吗?

<sessionState mode="Custom" customProvider="TableStorageSessionStateProvider"> 

有人能解释这是用于与MVC3?我对会话状态非常困惑。如果我的应用程序没有购物车之类的东西,我真的需要使用它吗?如果我只是想做简单的身份验证,需要吗?我从我的web.config中删除了代码,我的身份验证似乎仍然有效。

回答

1

如果您将应用程序发布到Azure并且以任何方式使用Session(这包括MVC的TempData),那么您可能需要为会话使用某种中央存储,而不是使用默认的“InProc “提供者只是将用户的会话存储在应用程序自己的内存中。使用Azure,您可以使用SQL Azure或AppFabric Cache(仍在CTP中)。

这里是AppFabric的一个很好的实验: http://msdn.microsoft.com/en-us/gg457897

这里还有一个用于SQL Azure的(不支持):http://blogs.msdn.com/b/sqlazure/archive/2010/08/04/10046103.aspx

这是因为你可以有多发性情况下运行,或者您的实例可以在移动任何特定的时刻。

这听起来像你的应用程序目前不使用会话状态,所以你不需要担心它。 (但是,请记住TempData字典在底层使用Session)

+0

事实上,如果使用MVC,则不需要担心会话状态。使用ASP.NET会话状态时出现问题。 – 2011-04-11 10:09:32

+0

@Tudor - 我不确定是否属于这种情况 - TempData是MVC中的一个常见项目,并且建议使用PRG模式 - 它是传递信息和状态消息的好方法。由于TempData依赖于asp.net会话状态,因此您有一个问题。 – 2011-04-23 19:34:26