2012-11-07 39 views
0

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

我会假设,因为会话是外部的应用程序,它会保持打开,而不是强制用户再次登录。真正?

+0

你在说什么缓存?共享缓存,或者在您的角色实例上使用内存的缓存“预览”? –

+0

Both?要么?我会很高兴能够帮助我做出是否使用它的决定。 – Micah

+0

如果您使用预览缓存,则每个Azure部署都将拥有自己的内存池。所以这肯定会清除你的会话。我猜测共享缓存不会清除你的会话。数据肯定会在那里,所以如果会话提供者做了一些检查DLL版本的话,你只会失去会话。 –

回答

1

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

缓存的角色不再是“预览” BTW。如果您设置了缓存集群并且您的会话状态位于该缓存集群中,那么您的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个来更新代码,其余的仍然可以返回请求。

+0

如果我在有人打开会话时发布代码,部署是否会取消他们的会话?他们是否需要再次登录?这是真正的问题。 – Micah

+0

我编辑了我的回复...快速回答是肯定的和/或它应该。 –

+0

谢谢!我很惊讶这是多么昂贵......疯狂 – Micah