Asp.net mvc MVC3 StorageSessionStateProvider-我需要它吗?

Asp.net mvc MVC3 StorageSessionStateProvider-我需要它吗?,asp.net-mvc,asp.net-mvc-3,azure,Asp.net Mvc,Asp.net Mvc 3,Azure,我注意到他们在azure示例中使用: <sessionState mode="Custom" customProvider="TableStorageSessionStateProvider"> 有人能解释一下MVC3的用途吗?我对会话状态非常困惑。如果我的应用程序没有像购物车这样的东西,我真的需要使用它吗?如果我只想做简单的身份验证,是否需要它?我从web.config中删除了代码,我的身份验证似乎仍然有效 如果您要将应用程序发布到Azure,并且以任何方式使用会话(包括MV

我注意到他们在azure示例中使用:

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


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

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

以下是AppFabric的一个很好的实验室:

下面是一个用于SQL Azure(不受支持)的示例:

这是因为您可以运行多个实例,或者您的实例可以在任何给定时刻移动


听起来您的应用程序当前没有使用会话状态,所以您不必担心它。(不过,请记住TempData字典使用的是幕后会话)

事实上,如果使用MVC,您不需要担心会话状态。使用ASP.NET会话状态时出现问题。@Tudor-我不确定是否是这种情况-TempData是MVC中的一个常见项,建议使用PRG模式-这是传递信息和状态消息的好方法。由于TempData依赖于asp.net会话状态,因此会出现问题。