Azure应用服务 - 写入文件系统 - ASP.NET Web应用程序

时间:2018-02-23 12:16:52

标签: asp.net azure file-io azure-web-sites azure-web-app-service

我有一个在Visual Studio 2017中创建的ASP.NET Web应用程序。

在应用程序中有一个表单,用户可以在其中上传文件。上传文件时,我处理它们并将它们保存在文件系统中:

var photo = Request.Files["file"];
photo.SaveAs("D:\\home");

一切都在本地完美运行,但是当我在Azure App Services上部署应用程序时,它无法正常工作。

我在Azure上看到了路径

D:\home

应该是可写的。

但是当我尝试代码时,我收到了这个错误:

Access to the path 'd:\home\test_image.JPG' is denied.

1 个答案:

答案 0 :(得分:1)

使用%TEMP%,它在Azure App Service(Windows)上解析为d:\local。那是本地计算机磁盘,而不是网络存储,因此速度显着提高。在应用重新启动时会被清除,因此相应地进行编码。

var tempDirectoryPath = Environment.GetEnvironmentVariable("TEMP");
var filePath = Path.Combine(tempDirectoryPath, Request.Files["file"]);

如果要耐用,请改用Blob存储。