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 ?
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 .