【问题标题】:Select a way for Session Management on Windows Azure为 Windows Azure 上的会话管理选择一种方式
【发布时间】:2011-08-09 09:52:27
【问题描述】:

我正在计划一个将部署在 Windows Azure 上的应用程序。 Web 角色将有多个实例。我看到有多个实例 in-proc 会话将不起作用。我看到我有以下方法来管理我的会话

  1. 使用 Azure 存储

  2. SQL Azure

  3. AppFabric

我不想选择选项 2 (SQL Azure)。

我应该选择哪个选项?

更新 1

我遇到了这个post,它演示了 Azure 上的会话亲和性以及应用程序请求路由 (ARR)。用这个选项而不是上面的选项怎么样?

【问题讨论】:

    标签: .net azure session-state


    【解决方案1】:

    我在 Codeplex 上创建了一个名为 Azure Providers 的开源项目,其中包括一个会话状态提供程序。会话状态提供程序将会话数据存储在 Windows Azure 表存储中。 http://azureproviders.codeplex.com/

    【讨论】:

    • 此会话提供程序是否在会话结束时删除实体?
    • 您添加的信息不是一个好主意;另外,请记住,该 ARR 帖子的作者解释说他展示的内容应该是自动化的。他是对的,因为如果您像这样手动配置您的 webroles,它们将在被回收时丢失配置(这可能由于许多预期和意外的原因而发生)。我认为没有理由不使用 SQL Azure,它运行良好。但是,我肯定会查看 Inge 提到的 Azure Providers 项目。
    【解决方案2】:

    绝对是 AppFabric 缓存服务。 It will be live in 30 days,看看这个链接:Using the Windows Azure AppFabric Caching for Session State,看看如何使用它。

    表存储提供程序不太好用,只是概念证明,不应在生产代码中使用。

    Microsoft 不支持在 SQL Azure 中保持会话状态。此外,由于没有 SQL Job Agent,因此您必须将清理逻辑放在您的 WebRole 或单独的 Worker 角色中。

    【讨论】:

    • 我同意 - 我最近想在一个项目中为此使用 AppFabric 缓存,但由于它尚未推出,我使用了 Azure 存储(带有自定义实现 - 默认表存储提供程序非常粗略)
    • 我认为那是一团糟。首先,您需要支付另一个角色来解决会话问题,其次,AppFabric 缓存服务仍然更加困难。会话状态必须小心使用,它是分布式应用程序中的杀手,将另一台机器部署在云上作为保镖,这样您就可以使用 InProc 会话状态提供程序......更糟糕:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2011-06-17
    相关资源
    最近更新 更多