簡體   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