如何保存可以在天蓝色友好的解决方案中的任何地方调用的单个变量?

时间:2013-10-07 23:55:08

标签: c# asp.net-mvc azure

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

2 个答案:

答案 0 :(得分:4)

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

如果要存储可供所有Web角色使用的单个变量...

  • 分布式缓存(Azure有两个选项)
  • Azure表存储(对于单个变量来说速度很快)
  • SQL Azure DB(对于单个变量可能过度杀伤)

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

答案 1 :(得分:0)

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