我已经设置了Web角色以使用共同定位的缓存。问题是在开发过程中我们不希望一直运行模拟器(因为它非常麻烦)。
由于Azure会话状态提供程序,正常运行我们的Web应用程序(未在Web角色中模拟)失败:
[InvalidOperationException:角色发现数据不可用]
Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.get_Roles()+ 171
是否可以将缓存配置为在未在Web角色中运行时使用普通InProc,并在Web角色中运行时使用Azure Colocated Caching。
答案 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网站之前完成配置的必要性开始了。