我有我的網站(ASP.Net 4.0 C#)託管在具有多個實例的Azure服務器上。我的會話狀態模式是「InProc」。不知何故,它不適用於Azure實例,它不能正確維護狀態。請指教。Azure和進程會話
問候 維韋克
我有我的網站(ASP.Net 4.0 C#)託管在具有多個實例的Azure服務器上。我的會話狀態模式是「InProc」。不知何故,它不適用於Azure實例,它不能正確維護狀態。請指教。Azure和進程會話
問候 維韋克
如果你有多個實例,並使用InProc會話,然後會話數據將無法正常工作 - 因爲它不會跨實例共享。
Azure負載均衡您的HTTP請求,並可能將每個客戶端HTTP請求發送到不同的服務器實例。
如果你想使用會話狀態,那麼你就需要使用一個共享的會話狀態提供者,如:
添加到Stuart的答案:AppFabric緩存是緩存即服務,不受任何虛擬機實例的影響。這項服務幾個星期前就開始了。 AppFabric團隊提供使用緩存的會話狀態提供程序,只需簡單的web.config複製粘貼。
由於斯圖爾特提到的原因,我不會依賴SQL Azure或表存儲來獲得會話緩存。
有一個很好的動手在Windows Azure Platform Training Kit稱爲構建Windows Azure應用程序與緩存服務實驗室 - 使用AppFabric的緩存我會去通過,作爲主題之一是配置會話狀態。
我在this SO answer提供了更多信息。
我想補充說我爲Azure開發了一個會話狀態提供程序,它是開源的,可以從這裏下載http://azureproviders.codeplex.com/ – 2011-07-18 12:50:28