【问题标题】:ASP.Net Application cache in an Azure "Web App"Azure“Web 应用程序”中的 ASP.Net 应用程序缓存
【发布时间】:2018-07-05 15:57:01
【问题描述】:

对不起,如果这是重复的,但我无法找到这个问题的答案。我有一个传统的 ASP.Net 网站,我想将它从运行 IIS 的单一 VM 转移到 Azure“Web 应用程序”。 我经常在应用程序缓存中添加和删除数据。如果 Web 应用程序在多个节点上运行,Azure 是否有一些巧妙的机制来保持应用程序缓存在所有节点之间同步?还是我需要自己实现?

如果我这样做,是否有推荐的机制来为 azure web 应用程序实现这一点?我似乎无法在任何地方找到这些答案。

【问题讨论】:

    标签: c# asp.net azure caching azure-web-app-service


    【解决方案1】:

    您可以使用本地缓存,但这将存储在应用服务计划中。因此,如果您的应用程序包含多个应用程序服务计划,那将无法正常工作。 (见https://docs.microsoft.com/en-us/azure/app-service/app-service-local-cache-overview)。

    如果需要使用共享缓存,Azure 提供了 redis。 (见https://docs.microsoft.com/en-us/azure/redis-cache/cache-web-app-howto

    【讨论】:

    • 谢谢。我们将尝试使用 Redis。
    【解决方案2】:

    添加到 Verendus 的 cmets。引用documentation:

    主目录包含应用程序的内容,应用程序代码可以 写给它。如果一个应用在多个实例上运行,主目录 在所有实例之间共享,以便所有实例看到相同的 目录。因此,例如,如果一个应用程序将上传的文件保存到家庭 目录,这些文件立即可供所有实例使用。

    应用服务如何使用临时本地存储的两个示例是 临时 ASP.NET 文件的目录和 IIS 的目录 压缩文件。 ASP.NET 编译系统使用“临时 ASP.NET Files”目录作为临时编译缓存位置。 IIS使用“IIS Temporary Compressed Files”目录存储 压缩响应输出。这两种类型的文件使用(以及 和其他人一样)在应用服务中重新映射到每个应用的临时本地 贮存。这种重新映射确保功能继续 预计。

    应用服务中的每个应用都作为随机唯一的应用运行 称为“应用程序池”的低特权工作进程标识 身份”,在此处进一步描述: http://www.iis.net/learn/manage/configuring-security/application-pool-identities。 应用程序代码使用此标识对 操作系统驱动器(D:\ 驱动器)。这意味着应用程序代码 可以列出常见的目录结构并读取常见的文件 操作系统驱动器。虽然这可能看起来有点 广泛的访问级别,可以访问相同的目录和文件 当您在 Azure 托管服务中预配辅助角色并阅读 驱动器内容。

    【讨论】:

      猜你喜欢
      • 2012-10-28
      • 2013-10-31
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2011-05-21
      • 1970-01-01
      相关资源
      最近更新 更多