Azure Colated Caching和InProc之间的交换

时间:2013-07-22 09:51:40

标签: azure session-state azure-storage azure-web-roles azure-caching

我已经设置了Web角色以使用共同定位的缓存。问题是在开发过程中我们不希望一直运行模拟器(因为它非常麻烦)。

由于Azure会话状态提供程序,正常运行我们的Web应用程序(未在Web角色中模拟)失败:

  

[InvalidOperationException:角色发现数据不可用]
  Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.get_Roles()+ 171

是否可以将缓存配置为在未在Web角色中运行时使用普通InProc,并在Web角色中运行时使用Azure Colocated Caching。

1 个答案:

答案 0 :(得分:1)

会话状态配置位于web.config中,因此您可以使用本地开发的标准web.config转换创建配置覆盖,然后在部署它时确保切换到具有引用的配置到Azure缓存提供程序。

http://blogs.msdn.com/b/webdev/archive/2009/05/04/web-deployment-web-config-transformation.aspx

更新:添加以下评论中的备注 您还可以在网站开始之前添加一些代码,以编程方式交换提供程序。可以在Web角色启动(http://blog.elastacloud.com/2011/05/13/azure-howto-programmatically-modify-web-config-on-webrole-startup/)或简单(同步)启动任务中执行此操作。通过在OnStart或启动任务中执行此工作,您可以删除Asp.NET站点依赖Azure Runtime检测它是否在Azure中运行以及在IIS网站之前完成配置的必要性开始了。