ASP.NET Core 5 API在Azure Web App磁盘空间上写入文件



我确实有一个ASP。NET Core 5 Web API项目,该项目当前作为Windows应用程序服务计划上的Azure Web应用程序托管。由于我有几个GB的存储空间与应用程序服务计划相关,我想使用10 GB的图像缓存来存储从API生成的图像。

以下是一些上下文:

  • 我不想为此使用Azure存储/Blob存储,以避免不必要的流量成本和延迟。一些图像是由多层其他图像生成的(我们称之为中间图像(,我缓存所有图像
  • 我的缓存解决方案在本地运行良好,但目前在Azure上没有
  • 发布API的新版本时,我希望使用"在目标位置删除其他文件">
  • 缓存将通过API调用清除/无效,而不是在部署或应用程序重新启动时

正如我所说,如果我在IIS Express上的本地运行,缓存工作正常。据我所知,Windows应用服务计划使用Kestrel进行托管我正在Azure Web App中寻找一个存储路径,在那里我可以创建和删除目录以及创建/读取/删除文件

由于应用服务计划为B1,因此根据文档,应用服务计划正在专用的Azure VM上运行:https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans

发件人https://learn.microsoft.com/en-us/azure/app-service/operating-system-functionality,我了解到有一个C驱动器和一个D驱动器。

从我的web应用程序中,我可以选择"开发工具"->预付款工具->去看库杜。当我点击Kudu的Environment时,我可以看到一些我试图写但没有成功的绝对路径。我也尝试过访问

  • 环境。GetEnvironmentVariable("HOME"(
  • IWebHostEnvironment。WebRootPath
  • IWebHostEnvironment。内容根路径
  • "D: \home\site\wwwroot">
  • "D: "主页">

也没有成功。我还尝试添加一个虚拟目录(因为我想将映像存储在另一个目录中,以便能够使用"在目标上删除其他文件"选项(。我还通过FTP连接到/site/wwwroot/,在那里我可以看到我部署的应用程序。

过去,我可以从ASP的虚拟目录中读取文件。NET Webforms应用程序,但使用此ASP。NET核心5 API项目,我没有任何成功的映射相对路径到绝对路径。

我的主要问题是:我需要在API项目中使用什么绝对路径才能在Azure Web App中拥有创建/删除目录权限和创建/读取/删除文件权限

好吧,我想好了。启动应用程序时出现了一些致命错误。它们似乎与ApplicationInsights有关。我完全从Azure门户网站上删除了它,现在一切都正常了。

以下路径用作基本路径D:\home\

最新更新