繁体   English   中英

Azure“ Web应用程序”中的ASP.Net应用程序缓存

[英]ASP.Net Application cache in an Azure “Web App”

抱歉,如果这是重复的,但是我找不到此问题的答案。 我有一个传统的ASP.Net网站,我希望从运行IIS的单台VM迁移到Azure“ Web App”。 我经常从应用程序缓存中添加和删除数据。 如果Web应用程序在多个节点上运行,那么azure是否具有某种巧妙的机制来使应用程序缓存在所有节点之间保持同步? 还是我需要自己实施?

如果可以,是否有推荐的机制可用于Azure Web应用程序? 我似乎在任何地方都找不到这些答案。

您可以使用本地缓存,但这将存储在应用程序服务计划中。 因此,如果您的应用程序具有多个应用程序服务计划,则将无法正常工作。 (请参阅https://docs.microsoft.com/zh-cn/azure/app-service/app-service-local-cache-overview )。

如果您需要使用共享缓存,则azure可提供redis。 (请参阅https://docs.microsoft.com/zh-cn/azure/redis-cache/cache-web-app-howto

添加到Verendus的评论中。 引用文档

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

App Service如何使用临时本地存储的两个示例是临时ASP.NET文件的目录和IIS压缩文件的目录。 ASP.NET编译系统使用“ Temporary ASP.NET Files”目录作为临时编译缓存位置。 IIS使用“ IIS临时压缩文件”目录来存储压缩响应输出。 这两种类型的文件使用情况(以及其他类型)都在App Service中重新映射到每个应用程序临时本地存储中。 此重新映射可确保功能按预期继续。

App Service中的每个应用程序均作为称为“应用程序池标识”的随机唯一的低特权工作进程标识运行,在此处进一步描述: http : //www.iis.net/learn/manage/configuring-security/application-pool-身份 应用程序代码使用此标识对操作系统驱动器(D:\\驱动器)进行基本的只读访问。 这意味着应用程序代码可以列出公用目录结构并读取操作系统驱动器上的公用文件。 尽管这似乎是一个较广泛的访问级别,但是在Azure托管服务中设置辅助角色并读取驱动器内容时,可以访问相同的目录和文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM