Я делаю ASP.NET Core 3.1 MVC с веб-сайтом Entity Framework на сервере Microsoft, на котором работает IIS 10, с базовыми функциями загрузки и выгрузки пользовательских файлов. Я могу загружать файлы в _webHostEnvironment.WebRootPath из Интернета, но когда я пытаюсь их загрузить, он не может их найти. Однако, если я перерабатываю пул приложений, я могу загрузить файл (я также могу загрузить его из Интернета после доступа к веб-сайту на локальном хосте на сервере).
Вот код, когда я загружаю файл:
string uniqueFileName = null;
if (model.Data != null)
{
string uploadsFolder = Path.Combine(_webHostEnvironment.WebRootPath, "images");
uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Data.FileName;
string filePath = Path.Combine(uploadsFolder, uniqueFileName);
model.Data.CopyTo(new FileStream(filePath, FileMode.Create));
}
Вот код, когда я загружаю его:
public FileResult DownloadData(string fileName, string tempAddCode, string patientName)
{
byte[] fileBytes = System.IO.File.ReadAllBytes(Path.Combine(_webHostEnvironment.WebRootPath, "images") + "\\" + fileName);
var dataStream = new MemoryStream(fileBytes);
return new FileStreamResult(dataStream, new MediaTypeHeaderValue("application/pdf"))
{
FileDownloadName = patientName.ToLower().Replace(" ", "_") + ".pdf"
};
}
Что происходит? Почему переработка пула приложений может исправить это? Я сохраняю эти файлы, загруженные пользователем, в неправильное место, и ASP.NET выполняет какое-то кэширование? Буду рад любой помощи в поиске решения! Спасибо.