2013-04-10 56 views
0

我在以下頁面讀取continualy WindowsAzure回收存儲會話爲什麼我的會話在MVC4中突然丟失數據?

Why do my instances recycle when trying to store sessions in co-located Azure cache?

這是我的webconfig設置:

<sessionState mode="InProc" timeout="2880" /> 

我讀,也許我必須改變模式,以保持該會話還活着,因爲當我使用該程序時,突然發生這種情況。讓我們看一個小時以後。

我該怎麼做才能避免這種不良的用戶體驗?

回答

1

如果您正在運行多個實例,則會因爲負載平衡器在實例之間反彈用戶而丟失會話數據。 「InProc」設置將會話數據存儲在每個單獨實例上,而不是跨實例存儲 - 讀取more

如果你想使用協同定位緩存那麼你的配置應該是這個樣子:

​​

more

UPDATE:最後,檢查您的ServiceConfiguration.cscfg文件中是否使用了REAL BLOB連接字符串。如果連接字符串說「UseDevelopmentStorage =真」,已部署的角色將永遠無法創建/連接到高速緩存 - 它會在模擬器本地工作,但:

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" /> 
+0

對不起,我遲到了,但我花了所有這些日子來實現它。我創建了一個新的Azure項目,其中包括我的MVC Applicacion,並且還添加了Cache角色(作爲專用角色)。如果我不使用共址,是否有任何問題?我還是不知道他們之間的區別 – 2013-04-14 18:37:33

+0

等一下!實際上,我沒有運行多個實例,我的頁面僅使用共享模式,只有實例 – 2013-04-14 20:53:28

+0

請參閱上面添加的更新 - 部署時回收疼痛是緩存BLOB配置字符串設置爲「UseDevelopmentStorage = true」的症狀 – viperguynaz 2013-04-15 16:15:15