2013-04-10 93 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