【问题标题】:When to use Azure Cache Service for Session in ASP.NET (MVC)何时在 ASP.NET (MVC) 中使用 Azure 缓存服务进行会话
【发布时间】:2014-02-01 08:14:10
【问题描述】:

我读到在 Azure 中托管的 ASP.NET Web 应用程序中使用 Session 对象时,如果请求由不同的(虚拟)机器处理,则应用程序无法看到另一个虚拟机的 Session 变量(显然),所以它建议使用 Azure 缓存服务。

只是为了理解:

这些“虚拟机切换”也能在“普通”网站中发生吗?

我的意思是:如果我不配置冗余(即多个实例),我是否有风险“看不到”会话变量是一样的?

提前致谢。

AB

【问题讨论】:

    标签: asp.net session caching azure azure-caching


    【解决方案1】:

    如果您将 Azure 网站与单个实例一起使用,那么从技术上讲,您可以使用进程内会话存储,因为所有请求都由同一个实例处理。即使在 Azure 网站中使用多个实例,默认行为也是使用带有“粘性”负载平衡的 ARR,以便特定客户端的所有请求都路由到同一个实例。

    但是,有时所有进程中的会话数据可能会丢失。如果一个实例失败,那么该站点将快速转移到另一个实例,并且任何内存(或磁盘)数据都将丢失。出于这个原因,最好为会话数据使用某种形式的单独的持久存储,例如缓存、表存储或 SQL 数据库(如果有必要的话)。无论如何,我相信所有 ASP.NET 会话提供程序都会出于性能原因维护底层存储的进程内缓存。

    如果您使用云服务来运行您的网站,那么所有请求都会在所有可用实例之间进行负载平衡,因此单独的会话存储是必不可少的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多