У меня есть служба приложений типа Web App в качестве платного плана в Azure, и я пытаюсь разрешить форме на основном сайте asp.net загружать файлы в каталог вне корневого веб-каталога. Не уверен, является ли это фактором, но в основной ветви настроена непрерывная интеграция с репозиторием git.
Код, который я написал, работает локально, но выдает эту ошибку при выполнении в Azure.
System.IO.FileNotFoundException: не удалось найти файл 'D: \ home \ site \ wwwroot \ wwwroot \ fullsteam-uploads \ 20190627_1239023614_015157371.png'.
Имя файла: 'D: \ home \ site \ wwwroot \ wwwroot \ fullsteam-uploads \ 20190627_1239023614_015157371.png'
в System.IO.FileStream.ValidateFileHandle (SafeFileHandle fileHandle)
в System.IO.FileStream.CreateFileOpenHandle (режим FileMode, общий доступ к FileShare, параметры FileOptions)
в System.IO.FileStream..ctor (путь строки, режим FileMode, доступ к FileAccess, общий доступ к FileShare, размер буфера Int32, параметры FileOptions)
по адресу pcs_fullsteamapi.Services.FilesService.SaveLeadsFiles (модель LeadsModel) в D: \ a \ 1 \ s \ pcs-fullsteamapi \ Services \ FilesService.cs: строка 31
Соответствующая часть кода
model.FileNames = new List<Tuple<string, string>>();
foreach (var file in model.Files)
{
var fileName = GetFileName(model.PipelinePersonId.ToString(), file);
await file.CopyToAsync(new FileStream(destinationPath + "\\" + fileName, FileMode.Create));
model.FileNames.Add(new Tuple<string, string>(file.FileName, fileName));
}
Путь точно соответствует серверу, при этом fullsteam-uploads является пустым каталогом. Строка 31 - файл ожидания. Копия.