Azure和In Proc会话

时间:2011-05-11 09:06:36

标签: session azure inproc

我的Azure服务器上托管了多个实例的站点(ASP.Net 4.0 C#)。我的会话状态模式是“InProc”。不知何故,它不能在Azure实例上工作,它不能正确维护状态。请指教。

此致 的Vivek

3 个答案:

答案 0 :(得分:8)

如果您有多个实例并且正在使用InProc会话,那么会话数据将无法工作 - 因为它不会在实例之间共享。

Azure负载平衡您的HTTP请求,并可能将每个客户端HTTP请求发送到其他服务器实例。

如果要使用会话状态,则需要使用共享会话状态提供程序,例如:

  • SQL会话状态提供程序(虽然我认为这对SQL Azure有一些限制,因为它无法使用SQLAgent代码定期清除状态)
  • 演示Azure表会话状态提供程序(未正式支持,有时报告为错误)
  • 最新的AppFabric会话状态提供程序(目前由MS推荐) - 请参阅http://appfabricdemos.codeplex.com/releases/view/65427

答案 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)

Select a way for Session Management on Windows Azure

AppFabric缓存服务现已上线。

干杯。