c# 访问 ubuntu 18.04 服务器上的路径被拒绝
c# Access to the path denied on ubuntu 18.04 server
我和我的朋友想做一个不和谐的服务器。我用 c# 制作了机器人,需要一些东西来托管它,这样它就可以 运行 24/7,我选择了 Digitalocean。我创建了一个 ubuntu 18.04 droplet,在上面安装了 dotnet sdk 并克隆了我的 github bot repo(我知道这不是最好的解决方案)。但是当我尝试执行 dotnet run
时,我得到了 "Access to path the path ' ' is denied" 错误。当我在 ubuntu 16.04 上使用 docker 尝试时,我遇到了同样的错误。谁能帮我解决这个问题? (它在 windows 10 上运行良好)
Docker 文件:
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 无效
您必须为 ubuntu 发布一个版本,使用 chmod -R 777 PATHTOPUBLISHFOLDER
授予执行权限,然后 运行 使用 path to the file without extension in the publish folder
授予执行权限
我和我的朋友想做一个不和谐的服务器。我用 c# 制作了机器人,需要一些东西来托管它,这样它就可以 运行 24/7,我选择了 Digitalocean。我创建了一个 ubuntu 18.04 droplet,在上面安装了 dotnet sdk 并克隆了我的 github bot repo(我知道这不是最好的解决方案)。但是当我尝试执行 dotnet run
时,我得到了 "Access to path the path ' ' is denied" 错误。当我在 ubuntu 16.04 上使用 docker 尝试时,我遇到了同样的错误。谁能帮我解决这个问题? (它在 windows 10 上运行良好)
Docker 文件:
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 无效
您必须为 ubuntu 发布一个版本,使用 chmod -R 777 PATHTOPUBLISHFOLDER
授予执行权限,然后 运行 使用 path to the file without extension in the publish folder