【问题标题】:Windows Azure & ASP.NET sessionWindows Azure 和 ASP.NET 会话
【发布时间】:2010-10-24 17:11:12
【问题描述】:

我有 ASP.NET Web 应用程序,它在用户浏览页面时存储有关会话的信息。如果我将此类应用程序部署到 Windows Azure 会不会有什么问题?

【问题讨论】:

标签: asp.net session azure


【解决方案1】:

正如 Nariman 所说,您不能拥有服务器亲和性 - 负载平衡超出了您的控制范围。您可以将表存储或 SQL Azure 用于会话状态。我认为将会话状态存储在 blob 中并没有多大价值。

请参阅 2010 年 8 月 SQL Azure 博客上的 this post,了解如何在 SQL Azure 中实现会话存储。这将允许您在扩展时跨实例管理会话状态。

编辑 6/16/2014 - Redis 缓存支持这一点。见Azure Redis Cache (Preview) ASP.NET Session State Provider

编辑 2012 年 5 月 23 日 - 哇,自从我发布这篇文章以来,很多事情都发生了变化。完全支持 SQL Azure 作为会话状态提供程序(通过通用提供程序,自 v1.4 起提供)以及 Windows Azure 缓存。 this StackOverflow 答案中提供了更多详细信息。

【讨论】:

    【解决方案2】:

    您不会注意到使用 InProc 的单实例部署有什么不同,但如果您计划运行多个 Web 角色,则确实需要依赖进程外 Blob 和表 storage . (在 Azure 负载平衡 AFAIK 中,无法让用户与同一个实例保持联系。)

    【讨论】:

      【解决方案3】:

      在 2012 年 10 月发布的 Azure SDK 中,他们提供了一个特殊的会话提供程序,可以将“同位角色缓存”用作会话的特殊后端。它允许您使用角色级缓存,而不必仅从表存储或 SQL Azure 中进行选择。这里有关于如何配置的说明:

      http://dotnetthread.com/articles/27-Setting-up-Windows-Azure-Caching-for-Session-State-Management.aspx

      【讨论】:

      • 答案中的链接已失效。
      猜你喜欢
      • 2017-05-11
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 2010-10-20
      • 2011-06-17
      相关资源
      最近更新 更多