Azure web应用程序会话和ARR

Azure web应用程序会话和ARR,azure,azure-web-app-service,arr,Azure,Azure Web App Service,Arr,我已将MVC应用程序部署到Azure Web app。该Web app需要在多个实例中扩展。 我想使用会话对象(ASP.NET)来存储一些用户数据等(轻量级),以便能够快速检索。我相信,会话将在Proc中使用ARR ON设置 我有以下几个问题 在Azure web应用程序中使用session对象可以吗 如果启用ARR,则保证在Proc会话中使用相同的命令 如果禁用了ARR,我应该使用会话对象吗 因为使用会话本身会使应用程序变慢,所以 在Azure webapp/MVC中存储小数据的其他替代方案(

我已将MVC应用程序部署到Azure Web app。该Web app需要在多个实例中扩展。 我想使用会话对象(ASP.NET)来存储一些用户数据等(轻量级),以便能够快速检索。我相信,会话将在Proc中使用ARR ON设置

我有以下几个问题

  • 在Azure web应用程序中使用session对象可以吗 如果启用ARR,则保证在Proc会话中使用相同的命令

  • 如果禁用了ARR,我应该使用会话对象吗

  • 因为使用会话本身会使应用程序变慢,所以 在Azure webapp/MVC中存储小数据的其他替代方案(一次验证的用户配置文件 相关数据)以便在应用程序中快速访问


  • 在云中使用IN-PROC会话是严格禁止的。托管到云的原因是拥有高可用性,这是通过拥有分布式环境来实现的

    为了回答您的问题,ARR Affinitycookie将客户机请求关联到特定实例。但是,如果
    进程重新启动
    应用程序域
    回收,则所有会话都将丢失。这是建议进行会话状态管理的主要原因之一

    我建议不要在任何云场景中使用进程内会话状态。我知道你很关心速度。为此,考虑使用<强> RID缓存> <强>。请参阅此处的文档:


    HTH

    谢谢Kaushal,由于成本限制,无法使用Redis缓存。考虑sql或表存储,这是个坏主意。如果您经常读取/写入会话数据,延迟会使应用程序崩溃。你不可能真正用持久存储取代内存存储,并且侥幸逃脱。此外,最小的Redis标准实例(不要使用Basic,它只是主实例而不是主/从实例)也没有那么昂贵,而且它的容量足以用于会话存储。