【问题标题】:Azure - what is the purpose of applicationName in Azure Caching?Azure - Azure 缓存中 applicationName 的用途是什么?
【发布时间】:2012-05-22 02:19:57
【问题描述】:

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

我对 applicationName 属性有点困惑。

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

也就是说,只要applicationName不同,同一个cache key就不会在不同的web应用之间发生冲突?

1 GB 缓存 110.00 美元比 10 X 128 MB 缓存 45.00 美元便宜很多。

感谢您的光临!

【问题讨论】:

    标签: caching azure distributed-caching azure-caching


    【解决方案1】:

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

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

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

    【讨论】:

    • 它如何与单个 ASP.Net Web 角色中的常规单个 Web 应用程序(具有 2 个实例)一起工作?我是否必须明确设置 applicationName (否则,一个实例的缓存不能被其他实例访问 - 这真的会破坏分布式缓存的目的)?谢谢你的光!
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      这里提到了会话状态和输出缓存使用applicationName标签的区别: http://msdn.microsoft.com/en-us/library/hh361708.aspx

      就这里提出的问题而言,applicationName 标签可以方便地在同一角色的多个实例之间缓存数据。

      【讨论】:

      • 您只是在复制我所要求的完全相同的内容。无论如何,Windows Azure 缓存(预览版)已经出来了,我再也不用担心与不同的云服务共享缓存(省钱)了。
      猜你喜欢
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 2019-05-22
      • 2020-03-09
      • 1970-01-01
      相关资源
      最近更新 更多