我有一个部署到Azure Web应用程序的MVC应用程序。需要在多个实例中扩展的Web应用程序。 我想使用Session对象(ASP.NET)来存储一些用户数据等(轻量级),这样就可以快速检索。我相信,会话将在In-Proc中进行ARR ON设置。
我有以下问题
在Azure网络应用中使用会话对象是否可以,它会给出 如果启用了ARR,则保证使用相同的In-Proc会话。
如果ARR关闭,我应该使用会话对象吗?
因为使用Session本身会使应用程序变慢,所以它是什么 在Azure webapp / MVC中存储小数据的其他替代方法(一旦经过身份验证的用户配置文件 相关数据)在申请中快速访问?
答案 0 :(得分:3)
在云中使用 IN-PROC 会话是严格的否定。托管云的原因是拥有高可用性,这可以通过分布式环境来实现。
要回答您的问题, ARR-Affinity Cookie会将客户端请求与特定实例相关联。但是,如果Process restarts
或App-Domain
回收,则所有会话都将丢失。这是建议 Out-Proc 会话状态管理的主要原因之一。
我建议不要在任何云方案中使用In-Proc会话状态。我知道速度是你关注的问题。为此,请考虑使用 Redis缓存。请参阅此处的文档:https://docs.microsoft.com/en-us/azure/redis-cache/cache-aspnet-session-state-provider
HTH