ASP.Net应用程序缓存在Azure" Web App"

时间:2018-01-26 10:04:09

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

很抱歉,如果这是重复的,但我无法找到这个问题的答案。我有一个传统的ASP.Net网站,我想从运行IIS的sinlge VM迁移到Azure" Web App"。 我经常在应用程序缓存中添加和删除数据。如果Web应用程序在多个节点上运行,azure是否有一些聪明的机制来保持应用程序缓存在所有节点上同步?或者我自己需要实现这个?

如果我这样做,是否有推荐的机制来实现这个天蓝色网络应用程序?我似乎无法在任何地方找到这些答案。

2 个答案:

答案 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托管服务中配置辅助角色并读取时   驱动器内容。