目前建议在Azure网站中为会话变量和TempData启用会话?

Sam*_*lly 4 asp.net-mvc session azure azure-web-sites

我有一个使用SQL Azure部署在Azure网站上的MVC3,ASP.NET 4.5 Web应用程序.

目前我正在使用一些我需要删除的"inproc"会话变量,因为我将开始使用多个网站实例.我可以将Session变量值存储在SQL Azure DB中,但我也使用TempData,它也使用会话状态,"在引擎盖下".由于TempData的使用,我确实需要实现一个"out of proc"会话解决方案.

我已经看到了一些使用AppFabric缓存的建议,但我不确定这是否仍然是最新的,以及它是否适用于Azure网站.

我的开发设置也在带有SQL Server 2008 R2的Windows 7机器上.所以解决方案应该可以在最小的痛苦下进行转移.

会话变量也存在"线程敏捷性"问题,并且使用REDIS缓存创建了一个开源解决方案,但我没有这方面的经验,或者REDIS.请参阅:GitHub站点

所以我的想法是:

1)Angieslist/AL-redis自定义提供程序,请参阅:GITHUB链接.不完全确定这可以在Azure网站应用程序中使用.

2)Appfabric.不确定这对Azure网站是否相关或最新.

3)SQL Azure会话提供程序.

4)Azure表存储.

5)使用客户TempData提供程序通过cookie保持,即https://www.nuget.org/packages/BrockAllen.CookieTempData.dll/1.2.2,然后删除其他会话变量.

我非常感谢有关一个简单的Azure网站会话实施机制的建议.我的数据非常简单.我想我有一个对象,我需要序列化,可能是通过Json.NET

CSh*_*cks 9

如果您有多个Azure网站实例,则负载均衡器默认启用粘性会话.这意味着用户将被定向到同一个实例(服务器),并且您将能够在您的应用中使用会话状态.