Azure会话管理

时间:2011-05-11 20:44:53

标签: azure

我已阅读Azure in Action手册中的以下内容: “在Windows Azure中,状态服务器或进程外会话状态提供程序, 不支持“

任何人都可以告诉我为什么不支持这个。他们没有在书中解释。我原本以为我可以运行状态服务器,所有Web角色都可以使用它来读取会话数据。 感谢您的回复

1 个答案:

答案 0 :(得分:4)

Windows Azure具有AppFabric Cache,非常适合会话存储。这大约在两周前上线。您可以在我的StackOverflow答案herehere中查看详细信息。

除了直到最近,Web Roles在Hosted Web Core而不是Full IIS下运行并且可能对提供状态服务器产生影响之外,我无法给出关于缺少状态服务器的绝对答案。此外,由于您的所有Web角色实例都是等效的,因此您将如何指定哪个是状态服务器?如果Windows Azure回收该实例会发生什么?我认为这将是一个令人头疼的问题。

使用AppFabric Cache解决方案,这是一种即时服务缓存,完全独立于您的角色实例,并为您管理。您只需获取一个端点,附加到缓存,然后执行puts和获取名称/值对。通过Azure门户,您可以单击“客户端配置”按钮,并为您生成一大块xml - 您将其放在web.config中,现在您拥有一个自定义会话状态提供程序,用于存储/检索会话数据到/来自高速缓存中。

编辑:在使用SQL Azure进行会话状态时:SQL Azure没有SQL代理,因此您不会有后台作业定期清除缓存。有一个MSDN blog post显示如何使SQL Azure作为会话状态提供程序工作(并使用辅助角色后台进程来执行会话清理)。但是,我仍然建议使用AppFabric Cache解决方案。