很抱歉,如果这是重复的,但我无法找到这个问题的答案。我有一个传统的ASP.Net网站,我想从运行IIS的sinlge VM迁移到Azure" Web App"。 我经常在应用程序缓存中添加和删除数据。如果Web应用程序在多个节点上运行,azure是否有一些聪明的机制来保持应用程序缓存在所有节点上同步?或者我自己需要实现这个?
如果我这样做,是否有推荐的机制来实现这个天蓝色网络应用程序?我似乎无法在任何地方找到这些答案。
答案 0 :(得分: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)
答案 1 :(得分:0)
加入Verendus的评论。引自documentation:
主目录包含应用程序的内容,应用程序代码可以 写信给它。如果应用程序在多个实例上运行,则为主目录 在所有实例之间共享,以便所有实例都看到相同的实例 目录。因此,例如,如果应用将上传的文件保存到家中 目录,这些文件立即可用于所有实例。
App Service如何使用临时本地存储的两个示例是 临时ASP.NET文件的目录和IIS的目录 压缩文件。 ASP.NET编译系统使用“临时 ASP.NET文件“目录作为临时编译缓存位置。 IIS使用“IIS临时压缩文件”目录进行存储 压缩响应输出。这两种类型的文件用法(以及 正如其他人一样)在App Service中重新映射到每个app临时本地 存储。此重新映射可确保功能继续 预期
App Service中的每个应用都是随机运行的 低权限工作进程标识称为“应用程序池” 身份“,在此进一步描述: http://www.iis.net/learn/manage/configuring-security/application-pool-identities。 应用程序代码使用此标识进行基本只读访问 操作系统驱动器(D:\驱动器)。这意味着应用程序代码 可以列出公共目录结构并读取公共文件 操作系统驱动器。虽然这看起来有点像 广泛的访问级别,可访问相同的目录和文件 在Azure托管服务中配置辅助角色并读取时 驱动器内容。