最佳实践:在 Windows Azure 中使用会话与多个实例
谁能告诉我,如果我在具有多个实例(意味着多个虚拟机)的 Windows Azure 环境中使用会话(在 ASP.NET MVC 3 应用程序内),那么它无需任何配置即可工作,或者我需要使用 ASP.NET 通用提供程序或我需要使用 AppFabric 手动处理这个问题吗?
Can anyone tell me that if I use Session(inside an ASP.NET MVC 3 application) in Windows Azure environment with multiple instances(means multiple virtual machines), then it work without any configuration or I need to use ASP.NET Universal Providers or I need to handle this manually by using AppFabric?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能使用进程内会话状态,但必须使用共享会话状态提供程序。
唯一受支持的会话状态模型是使用 Azure 缓存,但你可以使用适用于 Azure 存储或 SQL Azure 的提供程序。
更新:
我写了一些文章 我的博客,其中介绍了使用 SQL Azure 与 Entity Framework Code First 进行会话状态。希望您能在那里找到有用的指针,即使您没有使用实体框架。
使用标准 SQL Server 会话状态提供程序时需要记住的一点是,它没有重试逻辑,而在使用 SQL Azure 时,重试逻辑被认为是良好的做法。
You can't use in-process session state, but must use a shared session state provider.
The only supported session state model is to use Azure Cache, but you can use a provider that works with either Azure Storage or SQL Azure.
UPDATE:
I wrote some articles on my blog which go into using SQL Azure for session state with Entity Framework Code First. Hopefully, you'll find useful pointers there, even if you're not using Entity Framework.
Something to bear in mind using the standard SQL Server Session State Provider is that it doesn't have the retry logic which is considered good practice when working with SQL Azure.
有关 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
This discussion on ASP.NET MVC providers may help you:
http://azureproviders.codeplex.com/discussions/276053
, also, look here for how to implement a session provider using Azure AppFabric Caching:
http://weblogs.asp.net/shijuvarghese/archive/2011/05/04/using-windows-azure-appfabric-caching.aspx
正如 Steve Morgan 提到的,Azure AppFabric 缓存提供了受支持的缓存机制。缓存本身独立于您的计算实例。事实上,如果您想以这种方式使用单个缓存,则多个应用程序可以访问它。
关于配置,您必须修改 web.config,因为 AppFabric 缓存有一个自定义缓存提供程序。 web.config 片段本身是通过门户自动生成的;就像复制粘贴一样简单。
您可以找到有关缓存的更多信息,包括大小和定价,这里。
As Steve Morgan mentioned, The Azure AppFabric Cache provides a supported mechanism for caching. The cache itself is independent from your compute instances. In fact, a single cache could be accessed by multiple applications, if you wanted to use it in such a way.
Regarding configuration, you'll have to modify web.config, as the AppFabric Cache has a custom cache provider. The web.config snippet itself is auto-generated for you via the portal; it's as easy as copy-n-paste.
You can find out more info on caching, including sizes and pricing, here.