Microsoft Azure如何处理会话状态?
-
06-07-2019 - |
题
当您选择拥有多个实例时,是否有人有任何关于如何在Azure中管理状态的信息?看起来InProc毫无价值,您必须拥有另一个状态服务器实例,或者使用数据存储区来跨服务器存储用户状态。
或者它是否实现了粘性会话,因此InProc就是您所需要的。
在这里找到答案: Azure论坛
解决方案
表存储将是最合乎逻辑的地方。其他服务器场类型设置也使用数据库表来存储会话信息。
查看Windows Azure SDK示例中的AspProviders项目。它有一个使用Azure表存储的SessionState提供程序。
其他提示
AppFabric Cache刚刚投入生产,这是管理会话数据的绝佳方式。实际上,它有一个自定义会话状态提供程序,只需简单地放入web.config。您可以在Azure门户中找到它。
有关缓存大小,定价和SLA的所有信息均为此处一>
编辑:Windows Azure Web角色模板现在包括新的ASP.NET Universal Providers,包括支持SQL Azure的会话状态提供程序。看看Nate Totten的博客文章了解更多信息的信息。
EDIT 7/8/2012 Windows Azure现在提供缓存角色和内存缓存(均可使用最新工具和v1.7 SDK轻松配置)。内存缓存利用一定的RAM百分比在一个现有角色实例之间传播缓存(如果你的应用程序中不需要太多内存,那么很好的“免费”选项)。
不需要会话亲和性,因此使用依赖 Azure存储
或 SQL Azure存储
的会话状态提供程序是最佳选择。
对于某些遗留应用程序,您可能仍需要会话关联。对于这些情况, Azure负载均衡器
和 Web场
之间的ARR是一个选项。
另一种选择是使用粘性http会话:
http://dunnry.com/blog/2010/10/14/ StickyHTTPSessionRoutingInWindowsAzure.aspx
然后你可以使用InProc。