2013-10-07 52 views
3

起初,我正在傳遞一個會話變量,但後來有人告訴我,這在azure中不受支持。有沒有人有任何其他建議?我只是保存一個登錄用戶的對象。如何保存一個可以在天藍色友好的解決方案中調用的單個變量?

+0

Azure支持會話,但如果您希望在他們的時間內人們在應用程序的不同實例之間被退回,則需要集中式會話存儲,以便數據可用於所有實例。 –

回答

4

Azure確實支持會話,只是將會話放置在單個Web角色中工作不正常。例如,如果要將應用擴展到2,4或8臺服務器或保持高可用性,您將擁有負載均衡器,以在不同服務器之間路由請求。因此,如果您有多個Web服務器,每個Web服務器在負載均衡器後面都有自己的用戶會話...您將遇到問題,因爲您可能會在沒有會話狀態數據的情況下發送到Web角色(服務器)的請求。

如果要存儲一個變量,提供給所有的Web角色......

  • 分佈式緩存(Azure中有此一對夫婦選項)
  • Azure的表存儲(這將是快對於單個變量)
  • SQL Azure的DB(可能是矯枉過正單個變量)

這些選項上面將允許共享訪問(讀/寫)從多個Azure的Web角色所有。爲Azure緩存和SQL Azure DB編寫的ASP.NET會話狀態提供程序也可用。相反,Azure表存儲對於基於唯一密鑰快速檢索數據來說是一個非常好的選擇。

0

如果您的Web角色正在單個實例上運行,那麼會話將正常工作。 但在可擴展性需求的情況下,你將不得不去緩存。

相關問題