1

我已将 Web 角色设置为使用并置缓存。问题是在开发过程中我们不想一直运行模拟器(因为它很麻烦)。

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

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

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

4

1 回答 1

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 运行时的依赖以检测它是否在 Azure 中运行并且配置在 IIS 网站之前完成的必要性已启动。

于 2013-07-22T10:04:38.020 回答