Я пытаюсь разместить приложение ASP.Net Core MVC на Ubuntu Server 16.04 LTS, следуя указаниям этого руководства .
На компьютере Linux я использую git pull
тянуть в моем проекте.Я успешно строю его с dotnet build
, который запускает восстановление пакета.Я успешно публикую это с dotnet publish -c Release -r linux-x64
.Я изменяю каталоги на bin/Release/netcoreapp2.1
и запускаю sudo cp ./*.* /var/aspnetcore/myapp/
, чтобы скопировать файлы в каталог, где я размещаю проект.Я перехожу к этому каталогу и набираю dotnet myapp.dll
- приложение начинает прослушивать порты 5000 и 5001, и с другого компьютера я могу ввести свое доменное имя в браузер и посмотреть веб-сайт, что означает обратный прокси-сервер Nginx и Kestrel.должно работать нормально.
Теперь я хочу запустить приложение в качестве службы, чтобы оно запускалось с компьютера, перезагружалось при сбое, регистрировало ошибки и т. д., но когда я набираю sudo systemctl start kestrel-myapp.service
, оно сразу падает и пытаетсяперезапускать каждые 10 секунд, но не удается.Журнал показывает ошибку: An assembly in the application dependencies manifest (myapp.deps.json) was not found: package: 'Microsoft.EntityFrameworkCore.Relational.Design', version '1.1.5' path: 'lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.Design.dll' Main process exited, code=exited, status=140/n/a
Итак, версия 1.1.5 выглядит подозрительно низкой, но я обновил все свои пакеты NuGet и все еще хочет его использовать.Кроме того, я не понимаю, почему он не падает с dotnet myapp.dll
, если есть проблемы с зависимостями.Кто-нибудь знает, как решить проблему?
Вот мой служебный файл:
[Unit]
Description=myapp ASP.Net Core MVC Application
[Service]
WorkingDirectory=/var/aspnetcore/myapp
ExecStart=/usr/bin/dotnet /var/aspnetcore/myapp/myapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
SyslogIdentifier=myapp
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Бонусный вопрос: куда мне скопировать папку wwwroot со статическими файлами?Приложение запускается, но не может найти ни один из моих javascript или css файлов, и я не уверен, где они находятся.