web-dev-qa-db-fra.com

exécuter l'application ASP.NET Core sous Linux au démarrage

Je voudrais exécuter ma solution ASP.NET Core sous linux avec le résultat qu'elle exécute au démarrage.

De Microsoft docs , il y a 2 façons: Apache et Nginx .

Les deux approches impliquent passe proxy , par ex.

Apache:

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/
    ....

Nginx:

server {
    listen        80;
    server_name   example.com *.example.com;
    location / {
        proxy_pass         http://localhost:5000;
        ...

Étant donné qu'Apache ou Nginx agit uniquement en tant que proxy - est-ce que je comprends bien que je dois démarrer manuellement l'application dotnet ?

Je ne vois pas le bit dans la documentation où quelque chose pourrait déclencher dotnet run commande sur mon projet WebApi.

Évidemment, Apache ou Nginx ne géreraient pas le déclenchement d'une application dotnet - à moins que j'aie manqué quelque chose.

Existe-t-il un moyen de démarrer automatiquement l'application au démarrage du système d'exploitation ?

10
Alex Herman

Cette section dans les documents décrit comment créer un fichier de service pour démarrer automatiquement votre application Asp.Net Core.

Créez le fichier de définition de service:

Sudo nano /etc/systemd/system/kestrel-hellomvc.service

Voici un exemple de fichier de service pour l'application:

[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
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Development

[Install]
WantedBy=multi-user.target

Enregistrez le fichier et activez le service.

systemctl enable kestrel-hellomvc.service

Démarrez le service et vérifiez qu'il fonctionne.

systemctl start kestrel-hellomvc.service
systemctl status kestrel-hellomvc.service

Vous devez définir WorkingDirectory - chemin d'accès au dossier avec votre application et ExecStart - avec chemin d'accès à la DLL de votre application. Par défaut, cela suffit.

À partir de maintenant, votre application démarrera automatiquement au démarrage du système d'exploitation et essaiera de redémarrer après les plantages .

11
Groxan