Cet article présente comment utiliser l'interface en ligne de commande .NET (CLI) pour démarrer plusieurs instances d'applications ASP.NET Core, simulant ainsi un cluster.
L'interface en ligne de commande (CLI) .NET est une chaîne d'outils multiplateforme permettant de développer, générer, exécuter et publier des applications .NET.
La structure des commandes CLI comprend le pilote (« dotnet ») et la commande, ainsi que d'éventuels paramètres et options.
Commençons directement par notre sujet :
Créons d'abord une application MVC (cible : .NET 6) :
Placez-vous dans le répertoire contenant le fichier .csproj du projet
Entrez cmd et appuyez sur Entrée pour accéder rapidement au répertoire spécifique
dotnet run // La commande CLI .NET exécute le code source sans nécessiter de commande de compilation ou de démarrage explicite.
L'application est miantenant démarrée avec succès. Le port par défaut utilisé par la commande dotnet run est 5000, tel que défini dans launchSettings.json.
Vérifions dans le navigateur si l'application est bien démarrée sur le port 5000
Comme on peut le voir, l'application focntionne effectivement
Pour arrêter le programme, appuyez sur Ctrl + C. Le message d'arrêt réussi apparaît comme suit :
Si vous souhaitez utiliser un autre port que 5000, vous pouvez spécifier un port personnalisé avec le paramètre --urls, par exemple :
dotnet run --urls=http://*:8080
En ouvrant plusieurs fenêtres de ligne de commande, vous pouvez exécuter plusieurs instances du même code sur différents ports, simulant ainsi un cluster, comme indiqué ci-dessous.
Dans l'exemple ci-dessus, nous avons ouvert 2 interfaces de commande, démarrant chacune une instance sur les ports 8080 et 8081. Nous pouvons maintenant accéder à ces deux ports :
Nous constatons que l'accès fonctionne bien sur les deux ports
Il est également possible d'exécuter un projet spécifique :
dotnet run -p MonProjet.csproj // Un « - » est l'abréviation de p
dotnet run --project MonProjet.csproj // Deux « - » correspond à la forme complète de project
Un petit astuce lorsque vous tapez MonProjet.csproj : après avoir tapé la lettre « M », appuyez sur la touche Tab pour une complétion automatique, évitant ainsi de taper chaque caractère manuellement.
PS : Il est important de noter que la méthode de lancement décrite ci-dessus nécessite d'arrêter avec Ctrl+C et de redémarrer après toute modification du code du programme.
Une astuce consiste à ajouter l'option watch pour écouter automatiquement les modifications du code et redémarrer l'application à chaque modification :
dotnet watch run -p MonProjet.csproj --urls=http://*:8080
Une autre commande permet principalement de lancer une application publiée, comme suit :
PS : Cette méthode de lancement nécessite d'arrêter, de regénérer, de publier et de redémarrer après toute modification du code.
dotnet [fichier dll situé dans le dossier bin de la solution] --urls=http://*:8080
dotnet MonProjet.dll --urls=http://*:8080
L'utilisation de cette commande pour lancer une application non publiée peut entraîner des problèmes d'accès à certains fichiers de ressources, comme indiqué ci-dessous :
Bien que le lancement réussisse, certains fichiers de ressources deviennent inaccessibles, comme montré :
Cette commande est donc principalement destinée au lancement d'applications publiées, comme illustré ci-dessous :
Commençons par publier le projet : clic droit sur le projet => Publier
Choisissez IIS, FTP, etc.
Sélectionnez le système de fichiers
Procédez à la publication
Enfin, utilisez la commande pour lancer l'application publiée
On peut voir que le lancement a réussi
PS :
Le lancement via ligne de commande prend également en charge le débogage en attachant un processus. Vous pouvez essayer d'attacher w3wp.exe, dotnet.exe ou votreapplication.exe pour le débogage.
Votreapplication.exe est illustré ci-dessous :
Voici un résumé des commandes .NET CLI abordées dans cet article :
dotnet run
dotnet run --urls=http://*:8080 // urls spécifie l'ip et le port
dotnet watch run // watch surveille les modifications du code et redémarre automatiquement
dotnet watch run --urls=http://*:8080
dotnet run -p MonProjet.csproj // un « - » est l'abréviation de p
dotnet run --project MonProjet.csproj // deux « - » correspond à la forme complète de project
dotnet watch run -p MonProjet.csproj --urls=http://*:8080
dotnet [fichier dll situé dans le dossier bin de la solution] --urls=http://*:8080
dotnet MonProjet.dll --urls=http://*:8080
dotnet clean // supprime la génération par défaut du projet, équivalent à un clic droit "Nettoyer" dans Visual Studio
Ctrl + C // arrête
cls // efface l'écran
Tab // complétion automatique
Pour plus de détails sur la CLI .NET, vous pouvez consulter la documentation officielle : https://docs.microsoft.com/fr-fr/dotnet/core/tools/dotnet-run