我的Azure服务器上托管了多个实例的站点(ASP.Net 4.0 C#)。我的会话状态模式是“InProc”。不知何故,它不能在Azure实例上工作,它不能正确维护状态。请指教。
此致 的Vivek
答案 0 :(得分:8)
如果您有多个实例并且正在使用InProc会话,那么会话数据将无法工作 - 因为它不会在实例之间共享。
Azure负载平衡您的HTTP请求,并可能将每个客户端HTTP请求发送到其他服务器实例。
如果要使用会话状态,则需要使用共享会话状态提供程序,例如:
答案 1 :(得分:3)
添加到Stuart的答案:AppFabric Cache是缓存即服务,与任何虚拟机实例无关。几周前这项服务上线了。 AppFabric团队提供了一个使用缓存的会话状态提供程序,只需要一个简单的web.config copy-n-paste。
由于Stuart提到的原因,我不会依赖SQL Azure或Table Storage来进行会话缓存。
在Windows Azure Platform Training Kit中有一个很好的动手实验室,名为使用缓存服务构建Windows Azure应用程序 - 我将通过它,因为其中一个主题是配置会话状态使用AppFabric Cache。
我在this SO answer中提供了更多信息。
答案 2 :(得分:1)