【问题标题】:Azure Cache Session State-- Does Deploy Boot Users?Azure 缓存会话状态 - 是否部署引导用户?
【发布时间】:2012-10-27 19:25:59
【问题描述】:

如果使用 azure 缓存进行 asp.net mvc 会话状态管理,包括 dlls/web.configs 更改的部署是否仍会引导用户/强制新会话?

我假设由于会话在应用程序外部,因此它会保持打开状态,而不是强制用户再次登录。是吗?

【问题讨论】:

  • 你说的是哪个缓存?共享缓存,还是在您的角色实例上使用内存的缓存“预览”?
  • 两者?任何一个?我很乐意了解这两种方法来帮助我决定是否使用它。
  • 如果您使用的是预览缓存,那么每个 Azure 部署都有自己的内存池。因此,这肯定会清除您的会话。我猜想共享缓存不会清除您的会话。数据肯定仍然存在,因此只有在会话提供程序检查 DLL 版本时才会丢失会话。

标签: asp.net azure session-state azure-caching


【解决方案1】:

您应该查看 Azure 1.8 SDK(上周发布)中的新缓存功能: http://msdn.microsoft.com/en-us/library/windowsazure/hh914161.aspx

顺便说一句,“预览”中不再存在角色缓存。如果您设置了一个缓存集群并且您的会话状态处于该缓存集群中,那么您的 Web 角色可能会关闭,您的应用程序将继续正常工作。

您还可以使用 Azure AppFabric 缓存(即作为服务缓存),它们为 AzureCachingSessionStateProvider 提供程序集: http://msdn.microsoft.com/en-us/wazplatformtrainingcourse_buildingappswithcacheservice_topic3.aspx

回答您的问题:如果我取消一个 Web 角色来部署代码,分布式会话状态是否有效?...是的。 http://robbincremers.me/2012/02/23/using-windows-azure-caching-service-to-improve-performance-for-your-cloud-services/

我发布了一个链接,其中介绍了它如何与负载平衡器一起使用。由于负载均衡器是无状态的,它可以将任何请求路由到任何 Web 角色/服务器……由于会话状态处于分布式缓存中,因此任何 Web 角色都可以成功响应请求。如果您有 3 个 Web 角色并且您将其中的 1 或 2 个用于更新代码,那么其余的仍然可以返回请求。

【讨论】:

  • 如果我在有人打开会话时发布代码,部署会取消他们的会话吗?他们需要重新登录吗?这才是真正的问题。
  • 我编辑了我的回复...快速回答是肯定的和/或应该的。
  • 谢谢!我很惊讶它有多贵......疯了
  • 相当昂贵,但会话状态应该是相对少量的数据。即使您在企业系统上有 100,000 个活跃用户,在特定时刻您也有大约 5% 的用户登录...如果您有这么多用户,您应该能够为此付费:)
  • 如果您部署了一组新的 Web 角色(部署到 Staging 部署,进行 VIP 交换)不会清除您的会话状态吗?
猜你喜欢
  • 2012-10-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
相关资源
最近更新 更多