Linux 在步骤CHDIR繁殖失败/usr/bin/dotnet“文件:没有这样的文件或目录

Linux 在步骤CHDIR繁殖失败/usr/bin/dotnet“文件:没有这样的文件或目录,linux,asp.net-core,deployment,Linux,Asp.net Core,Deployment,我尝试将ASP.NETCore2网站部署到Ubuntu 但是,它会引发一个异常: Failed at step CHDIR spawning "/usr/bin/dotnet": No such file or directory from the file 错误来自此文件 [Unit] Description=Example .NET Web API App running on Ubuntu [Service] WorkingDirectory=/var/aspnetcore/hel

我尝试将ASP.NETCore2网站部署到Ubuntu

但是,它会引发一个异常:

Failed at step CHDIR spawning "/usr/bin/dotnet": No such file or directory from the file
错误来自此文件

 [Unit]
 Description=Example .NET Web API App running on Ubuntu

[Service]
WorkingDirectory=/var/aspnetcore/hellomvc
ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll
Restart=always
RestartSec=10  # Restart service after 10 seconds if dotnet service crashes
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target
但是,命令/usr/bin/dotnet存在,当我运行时,它还可以

/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll

我在谷歌上搜索了一下,但我找到的最佳答案表明它与用户的www数据有关。但我还是不知道出了什么问题。任何帮助都将不胜感激。

查看工作目录路径,cd直接指向路径。 在我的例子中,WorkingDirectory路径文件夹丢失,当我手动创建它时,它开始工作

希望这有帮助

安装dotnet核心

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/ubuntu/18.04/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install dotnet-sdk-2.1
sudo nano/etc/systemd/system/api.service

[Unit]
Description=Api

[Service]
WorkingDirectory=/media/data/Services/Api
ExecStart=/usr/bin/dotnet /media/data/Services/Api/Api.dll --sever.urls=http://*:7034
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=Api
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
TimeoutStopSec=90

[Install]
WantedBy=multi-user.target
创建文件后运行这些命令

systemd-escape "<value-to-escape>"
sudo systemctl enable api.service
sudo systemctl start api.service
sudo systemctl status api.service
systemd转义“”
sudo systemctl enable api.service
sudo systemctl启动api.service
sudo systemctl status api.service

始终验证文件和文件夹的位置

您是否确保用户
www data
具有
/var/aspnetcore/hellomvc
的读取权限?@Evk。非常感谢。看来这就是问题所在。www数据被授予权限后,它工作了!