Ошибка на шаге порождения CHDIR "/ usr / bin / dotnet": нет такого файла или каталога - PullRequest
0 голосов
/ 04 мая 2018

Я попытался развернуть веб-сайт ASP.NET Core 2 в Ubuntu после https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&tabs=aspnetcore2x.

Однако, оно выдает исключение:

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-данными. Тем не менее я не мог понять, что не так. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Установить ядро ​​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

NB всегда проверяйте расположение файлов и папок

0 голосов
/ 22 августа 2018

Найдите путь WorkingDirectory, перейдите непосредственно к пути. В моем случае папка пути WorkingDirectory отсутствовала, и когда я создал ее вручную, она начала работать.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...