最佳实践:在Windows Azure中使用具有多个实例的会话

时间:2011-10-22 18:26:06

标签: asp.net-mvc-3 azure appfabric

任何人都可以告诉我,如果我在具有多个实例(意味着多个虚拟机)的Windows Azure环境中使用Session(在ASP.NET MVC 3应用程序内),那么它可以在没有任何配置的情况下工作,或者我需要使用ASP.NET Universal Providers或我需要使用AppFabric手动处理这个?

3 个答案:

答案 0 :(得分:6)

您不能使用进程内会话状态,但必须使用共享会话状态提供程序。

唯一受支持的会话状态模型是使用Azure缓存,但您可以使用与Azure存储或SQL Azure一起使用的提供程序。

更新:

我在my blog上写了一些文章,这些文章将使用SQL Azure与Entity Framework Code First进行会话状态。希望你能在那里找到有用的指针,即使你没有使用Entity Framework。

使用标准SQL Server会话状态提供程序时要记住的是,它没有使用SQL Azure时被认为是良好做法的重试逻辑。

答案 1 :(得分:2)

有关ASP.NET MVC提供程序的讨论可能对您有所帮助:

http://azureproviders.codeplex.com/discussions/276053

,另请参阅此处了解如何使用Azure AppFabric缓存实现会话提供程序:

http://weblogs.asp.net/shijuvarghese/archive/2011/05/04/using-windows-azure-appfabric-caching.aspx

答案 2 :(得分:1)

  

“......没有任何配置......”

正如Steve Morgan所说,Azure AppFabric Cache提供了一种支持的缓存机制。缓存本身独立于您的计算实例。事实上,如果你想以这种方式使用它,多个应用程序可以访问单个缓存。

关于配置,您必须修改web.config,因为AppFabric Cache具有自定义缓存提供程序。 web.config代码段本身是通过门户网站为您自动生成的;它就像copy-n-paste一样容易。

您可以找到有关缓存的更多信息,包括尺寸和价格here