c # Доступ к пути запрещен на сервере Ubuntu 18.04 - PullRequest
0 голосов
/ 28 ноября 2018

Мы с другом хотели создать дискорд сервер.Я сделал бот в c # и мне нужно что-то для его размещения, чтобы он мог работать 24/7, я выбрал Digitalocean.Я создал дроплет ubuntu 18.04, установил на него dotnet sdk и клонировал мой репозиторий на github (я знаю, что это не лучшее решение).Но когда я попытался сделать dotnet run, я получил ошибку «Доступ к пути» запрещен ».Я получил ту же ошибку, когда я пытался с помощью Docker на Ubuntu 16.04.Может кто-нибудь помочь мне с этой проблемой?(Работало нормально на windows 10)

Dockerfile:

FROM microsoft/dotnet:2.1-sdk
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# copy and build everything else
COPY . ./
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "out/Bot.dll"]

ошибка:

Unhandled Exception: System.UnauthorizedAccessException: Access to the path '/app/out' is denied. ---> System.IO.IOException: Permission denied
   --- End of inner exception stack trace ---
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at Bot.Program.MainAsync() in /app/Program.cs:line 38
   at Bot.Program.Main(String[] args) in /app/Program.cs:line 16

chmod -x и chmod -R 777 не работали

1 Ответ

0 голосов
/ 02 декабря 2018

Вы должны сделать публикацию релиза для Ubuntu, дать разрешение на выполнение с chmod -R 777 PATHTOPUBLISHFOLDER и затем запустить его с path to the file without extension in the publish folder

...