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