2012-11-07 40 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