【发布时间】:2010-10-24 17:11:12
【问题描述】:
我有 ASP.NET Web 应用程序,它在用户浏览页面时存储有关会话的信息。如果我将此类应用程序部署到 Windows Azure 会不会有什么问题?
【问题讨论】:
-
Azure Redis 缓存可以做到这一点,请参阅 azure.microsoft.com/blog/2014/06/05/… 上的 Azure Redis 缓存(预览版)ASP.NET 会话状态提供程序
我有 ASP.NET Web 应用程序,它在用户浏览页面时存储有关会话的信息。如果我将此类应用程序部署到 Windows Azure 会不会有什么问题?
【问题讨论】:
正如 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 答案中提供了更多详细信息。
【讨论】:
您不会注意到使用 InProc 的单实例部署有什么不同,但如果您计划运行多个 Web 角色,则确实需要依赖进程外 Blob 和表 storage . (在 Azure 负载平衡 AFAIK 中,无法让用户与同一个实例保持联系。)
【讨论】:
在 2012 年 10 月发布的 Azure SDK 中,他们提供了一个特殊的会话提供程序,可以将“同位角色缓存”用作会话的特殊后端。它允许您使用角色级缓存,而不必仅从表存储或 SQL Azure 中进行选择。这里有关于如何配置的说明:
【讨论】: