Cet article présente principalement la méthode graphique de déploiement de projets ASP.NET Core sur IIS. Les amis dans le besoin peuvent se référer à ce qui suit
Aperçu
Différent de l'ère ASP.NET, ASP. .NET Core n'est plus hébergé par le processus de travail IIS (w3wp.exe), mais s'exécute à l'aide d'un serveur Web auto-hébergé (Kestrel) qui agit comme un proxy inverse et transmet les requêtes au programme ASP.NET Core sur différents ports. de Kestrel. , puis envoyez la requête reçue au pipeline middleware. Après avoir traité votre requête et la logique métier associée, les données de réponse HTTP seront réécrites dans IIS et finalement transférées vers différents clients (navigateurs, application, client, etc. ). Les fichiers de configuration et les processus seront légèrement ajustés. Le rôle le plus important au milieu est AspNetCoreModule, qui est l'un des modules IIS. Une fois la requête entrée dans IIS, elle sera immédiatement et rapidement redirigée vers ASP.NET Core. projet. Ainsi, pour le moment, nous n’avons pas besoin de mettre en place un pool d’applications pour héberger notre code, il est uniquement responsable du transfert des requêtes.
Avant le déploiement, assurez-vous que le module d'hébergement AspNetCoreModule a été installé sur votre IIS. Sinon, cliquez ici pour le télécharger et l'installer
1, installez IIS
1. Accédez au Panneau de configuration → Programmes → Activer ou désactiver les fonctionnalités Windows → cochez Internet Information Services et la console de gestion IIS sous Outils de gestion Web
2. Publiez le projet
1. Publiez le projet d'API ASP.NET Core que nous avons construit dans l'article précédent, puis sélectionnez IIS et créez une nouvelle publication. configuration 2. Sélectionnez le système de fichiers pour la méthode de publication, puis définissez un chemin de publication 3. Le fichier de configuration peut être basé sur votre environnement en ligne, choisissez l'environnement hors ligne. Parce qu'il est basé sur .NET Core, le framework cible est netcoreapp1.1, puis enregistrez et publiez . 4. Bien sûr, vous pouvez également publier en fonction de la commande Publier de la CLI. Basculez simplement vers le répertoire racine Light.API et entrez la commande suivantedotnet publish --framework netcoreapp1.1 --output "E:\Publish" --configuration Release
3. Ajoutez un site Web dans IIS
1 Ajoutez un site Web, définissez le nom et pointez le chemin vers le dossier que vous venez de publier, puis démarrez. le site Web
2. Définissez la version .NET CLR du pool d'applications sur "Aucun code géré", car comme mentionné tout à l'heure, IIS agit comme un proxy inverse et le fait pas besoin de gérer le code
3. OK, vous avez terminé, parcourez notre site Web.
À ce moment-là, mon cœur était brisé. Il n'y avait aucune information utile sur l'invite. Il semblait que je ne pouvais vérifier que moi-même le journal d'exécution de l'application
4. Définissez la méthode de journalisation d'IIS pour enregistrer les fichiers et les événements ETW5. Revenez sur le site Web, puis ouvrez le journal des applications Windows, vous verrez un message comme celui-ci. Cela signifie que votre application a été démarrée par le processus avec le PID 3236 et qu'elle écoute sur le port 25636.
J'ai ouvert le gestionnaire de tâches et vérifié, et c'était vrai. Tout devrait être normal, alors pourquoi y a-t-il 404 lors de l'accès au site Web ?
Après avoir longtemps lutté, il s'avère que le site Web n'a pas automatiquement redirigé vers la page /swagger/ui Re-visitez : http://192.168. 1.105/swagger/ui, vous Vous verrez un écran familier
6. Enfin et surtout, vous pouvez réellement exécuter le programme que vous avez publié via CLI, passer à votre publication dossier et entrez la commande suivante :
Lorsque vous voyez cette invite, cela signifie que vous avez réussi. Essayez de visiter : http://localhost:5000/swagger/uidotnet Light.API.dll
À ce moment-là, si vous regardez le gestionnaire de tâches, il y aura un autre processus dotnet
Écrivez-le à la fin
À ce À ce stade, toute la configuration d'IIS est terminée. Je me demande si vous avez gagné quelque chose. Ensuite, je ne sais pas quels genres de pièges il y aura lors de sa publication sous Linux. Quoi qu’il en soit, chaque pas que vous ferez en vaudra la peine lorsque vous regarderez en arrière !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!