UnauthorizedAccessException консольного приложения .NET после создания каталога - PullRequest
0 голосов
/ 06 октября 2018

Создание каталога с помощью .NET Core 2.0 успешно создает каталог в файловой системе, но я не могу записать в него.

var downloadPath = Path.Combine(DownloadPath, "Target");
var downloadDirectory = Directory.CreateDirectory(downloadPath); // Succeeds
DownloadMultipleFilesAsync(zoneFileUrls, downloadPath);          // Fails

Я получаю следующую ошибку при выполнении метода DownloadMultipleFilesAsync.Не имеет значения, удаляю ли я FileAttributes.ReadOnly из атрибутов каталога, он все равно выдает эту ошибку.

System.Net.WebException: An exception occurred during a WebClient request. ---> System.UnauthorizedAccessException: Access to the path 'D:\Projects\ETL\My.ETL\bin\Debug\netcoreapp2.0\Work\Target' is denied.
   at SafeFileHandle System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options)
   at new System.IO.FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options)
   at new System.IO.FileStream(string path, FileMode mode, FileAccess access)
   at void System.Net.WebClient.DownloadFileAsync(Uri address, string fileName, object userToken)
   --- End of inner exception stack trace ---
   at async Task My.ETL.Services.FileProviders.FileProvider.DownloadFileTaskAsync(string url, string downloadPath) in D:\Projects\ETL\My.ETL.Services\FileProviders\FileProvider.cs:line 80

Запуск через Visual Studio.В проводнике файлов я вижу свое имя как владельца каталога, поэтому я знаю, что консольное приложение запускается как я, поэтому я не уверен, почему оно не позволяет загружать в него файлы.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Я забыл добавить имя файла к пути: - (

0 голосов
/ 06 октября 2018

Убедитесь, что папка имеет правильные разрешения для групп пользователей IIS_IUSRS и IUSR.Только для целей тестирования можно установить разрешения «Полный доступ» для пользователя «Все» в родительской папке.

...