3

起初我正在传递一个会话变量,但后来有人告诉我,这在 azure 中不受支持。有没有人有任何其他建议?我只是保存登录用户的对象。

4

2 回答 2

4

Azure 确实支持会话,只是将会话置于单独的 Web 角色中并不能很好地工作。例如,如果您想将您的应用程序扩展到 2、4 或 8 个服务器或保持高可用性,您将拥有一个负载均衡器,它将在不同服务器之间路由请求。因此,如果您有多个 Web 服务器,每个服务器在负载均衡器后面都有自己的用户会话......您将遇到问题,因为您可能有一个请求转到没有会话状态数据的 Web 角色(服务器)。

如果您想存储一个可供所有 Web 角色使用的变量...

  • 分布式缓存(Azure 有几个选项)
  • Azure 表存储(单个变量会很快)
  • SQL Azure DB(对于单个变量可能有点矫枉过正)

上述所有这些选项都将允许来自多个 Azure Web 角色的共享访问(读/写)。也有为 Azure 缓存和 SQL Azure DB 编写的 ASP.NET 会话状态提供程序。相反,Azure 表存储是非常好的基于唯一键快速检索数据的选择。

于 2013-10-08T01:49:49.270 回答
0

如果您的 Web 角色在单个实例上运行,那么会话将正常工作。但是如果需要可扩展性,您将不得不进行缓存。

于 2013-10-08T09:29:00.667 回答