Azure Web应用会话和ARR
问题描述:
我有一个MVC应用程序部署到Azure Web应用程序。Web应用程序需要在多个实例中扩展。 我想使用会话对象(ASP.NET)来存储一些用户数据等(轻量级),以便可以快速检索。我相信,会话将通过ARR ON设置进行In-Proc。Azure Web应用会话和ARR
我有以下问题
它是确定使用会话对象在Azure的网络应用程序,它会给予 保证使用同一个进程内的会话,如果ARR上。
如果ARR关闭,我应该使用会话对象吗?
因为使用Session本身就是应用程序的速度,什么是应用快速访问 其他替代品来存储小数据Azure的web应用程序/ MVC(一旦被认证的用户配置文件 相关数据)内?
答
使用IN-PROC云中的会话是严格的no。托管云的原因是具有高可用性这是通过具有分布式环境完成的。
要回答你的问题,ARR-Affinity cookie将关联客户端请求到特定实例。但是,如果Process restarts
或App-Domain
回收,则所有会话都将丢失。这是建议使用Out-Proc会话状态管理的主要原因之一。
我建议不要在任何云场景中使用In-Proc会话状态。我知道速度是你关心的问题。对于这个考虑使用Redis Cache。这里请参考文档:https://docs.microsoft.com/en-us/azure/redis-cache/cache-aspnet-session-state-provider
HTH
感谢Kaushal,不能去因成本limitation.Considering SQL或表存储 –
这是一个糟糕的坏主意,Redis的缓存。如果您经常读/写会话数据,延迟会使应用程序瘫痪。你不能真正用耐用的商店来取代内存商店,并且摆脱它。此外,最小的Redis标准实例(不要与Basic一起使用,这是主控制器不是主控制器/从属控制器)并不是那么昂贵,而且会话存储容量足够多。 – evilSnobu