C# 对ubuntu 18.04服务器上路径的访问被拒绝
我和我的朋友想做一个discord服务器。我用c#制作了这个机器人,需要一些东西来承载它,这样它就可以全天候运行,我选择了Digitalocean。我创建了一个Ubuntu18.04 droplet,在上面安装了DotnetSDK,并克隆了我的github bot repo(我知道这不是最好的解决方案)。但是,当我尝试运行C# 对ubuntu 18.04服务器上路径的访问被拒绝,c#,linux,ubuntu,server,discord.net,C#,Linux,Ubuntu,Server,Discord.net,我和我的朋友想做一个discord服务器。我用c#制作了这个机器人,需要一些东西来承载它,这样它就可以全天候运行,我选择了Digitalocean。我创建了一个Ubuntu18.04 droplet,在上面安装了DotnetSDK,并克隆了我的github bot repo(我知道这不是最好的解决方案)。但是,当我尝试运行dotnet时,出现了“路径“”的访问被拒绝”错误。当我在ubuntu 16.04上使用docker进行尝试时,我也遇到了同样的错误。有人能帮我解决这个问题吗?(在window
dotnet
时,出现了“路径“”的访问被拒绝”错误。当我在ubuntu 16.04上使用docker进行尝试时,我也遇到了同样的错误。有人能帮我解决这个问题吗?(在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不起作用您必须为ubuntu发布一个版本,使用
chmod-R 777 PATHTOPUBLISHFOLDER
授予执行权限,然后使用发布文件夹中不带扩展名的文件的路径运行它
它存储在什么路径中?具体引发错误的是什么,是程序正在寻找路径,还是dotnet run
命令失败?您需要执行chmod+x文件,该文件需要访问,才能授予其执行权限。至少我有这个问题。