Azure - Azure缓存中applicationName的用途是什么?

时间:2012-05-14 15:09:14

标签: caching azure distributed-caching azure-caching

Configuration the ASP.NET Output Cache Provider for Windows Azure Caching

我对applicationName属性感到有点困惑。

这是否意味着我可以使用多个应用程序共享相同的Azure缓存(只要我没有最大化事务,数据传输和连接)?

换句话说,只要applicationName不同,相同的缓存键就不会在不同的Web应用程序之间发生冲突?

$ 110.00的1 GB缓存比10 X 128 MB缓存便宜很多,价格为45.00美元。

谢谢你揭开光芒!

3 个答案:

答案 0 :(得分:0)

如果我们考虑开箱即用缓存的架构设计,那么当您在云中运行相同应用程序的多个实例并使用开箱即用缓存时,要使所有实例保持同步输出缓存。

当你有多个应用程序1)/ Root 2)/ production 3)/ test你真的不想在两个不同的应用程序之间混合输出缓存,因为输出缓存可能有基于缓存端点分布的整页和部分页面缓存在应用程序名称(如果已配置)或IIS系统提供的AppID上。

如果您在同一个ASP.NET Web角色应用程序中使用多个站点,那么您可以使用dataCacheClient根据具有相同应用程序的不同站点的不同主机头分离输出缓存,这将是首选解决方案。

答案 1 :(得分:0)

基于MSDN链接,ApplicationName在内部用于生成缓存密钥。如果未提供应用程序密钥,则使用HttpRuntime.AppDomainAppId。现在,开发团队有责任使用udpated IIS元数据库,以便每个实例中的HttpRuntime.AppDomainAppId解析为相同的值。

简而言之,ApplicationName名称用于提供额外的隔离层,如果ApplicationName在不同的应用程序中匹配,那些应用程序将使用相同的缓存。

答案 2 :(得分:0)

此处提到了会话状态和输出缓存的applicationName标记的使用差异: http://msdn.microsoft.com/en-us/library/hh361708.aspx

在此处提出的问题的上下文中,applicationName标记可以方便地在同一角色的多个实例之间缓存数据。