Как установить разрешения для определенной папки с помощью Elastic Beanstalk с помощью приложения C # ASP.NET Core? - PullRequest
1 голос
/ 14 июня 2019

Я новичок в ASP.NET Core и создаю приложение. Одна из функций, которая работает локально, - это загрузка файла и его сохранение в созданной мной папке wwwroot / uploads.

У меня нет проблем с сохранением этого файла и последующим доступом или загрузкой этого файла локально. Как только я начал развертывать свое приложение, используя Elastic Beanstalk, я неоднократно получаю следующую ошибку, когда пытаюсь загрузить файл:

"UnauthorizedAccessException: доступ к пути 'C: \ inetpub \ AspNetCoreWebApps \ AppName \ wwwroot \ uploads \ filename.txt' запрещен."

Поиск по этой проблеме привел меня к добавлению папки .ebextensions для размещения файлов конфигурации, чтобы добавить разрешения на запись и добавить эту папку в исходный комплект. Насколько я понял, я настроил это следующим образом:

source bundle zip:
-deployment manifest 
-source code folder:
 -all dlls
 -wwwroot folder
 -.ebextensions folder added here

В этот момент я попытался создать файл конфигурации JSON, но я все еще получил ту же ошибку. Я попытался создать файл конфигурации YAML, но все равно получил ту же ошибку.

Файл YAML:

container_commands:
    01-changeperm:
        command: icacls "C:/inetpub/AspNetCoreWebApps/AppName/wwwroot" /grant DefaultAppPool:(OI)(CI)F /T

Файл JSON:

{
    "container_commands": {
        "01": {
            "command": "icacls "C:/inetpub/AspNetCoreWebApps/AppName/wwwroot" /grant DefaultAppPool:(OI)(CI)F /T"
        }
    }
}

Если кому-то интересно в стеке, когда он ломается:

UnauthorizedAccessException: доступ к пути 'C: \ inetpub \ AspNetCoreWebApps \ AppName \ wwwroot \ uploads \ filename.txt' запрещен.

System.IO.FileStream.ValidateFileHandle (SafeFileHandle fileHandle)

System.IO.FileStream.CreateFileOpenHandle (режим FileMode, общий доступ к FileShare, параметры FileOptions)

System.IO.FileStream..ctor (путь строки, режим FileMode, доступ к FileAccess, общий доступ к FileShare, int bufferSize, параметры FileOptions)

AppName.Utilities.FileHelper.WriteFileToFolder (IFormFile formFile, строка filePath) в FileHelper.cs AppName.Controllers.HomeController.Create (модель FileUpload) в HomeController.cs

-

Как я могу узнать, запущены ли мои конфигурационные файлы? Я не вижу, чтобы они запускались как события на EBS, и это единственное место, где я могу их искать.

Или же файлы конфигурации настроены неправильно?

Наконец, у кого-нибудь есть совет, что еще может быть проблемой здесь? Я новичок в ASP.NET Core и EBS, поэтому все отзывы приветствуются.

...