Maintenant que nous avons vu comment mettre en place notre serveur web avec IIS sur Windows Serveur 2012 R2, nous allons voir comment faire en sorte que nos applications ASP. NET Core (anciennement ASP. NET 5) puisse tourner sur celui-ci. Car malheureusement pour nous, par défaut seul nos sites internet en ASP.NET 4.5 ou en dessous peuvent fonctionner. Il serait dommage de ce privé d’une nouvelle technologie fraichement né !
Etant accès récent, dans l’état actuel IIS ne nous propose pas dans les “features” l’installation de ASP.NET Core. Nous allons donc faire cela de manière manuelle.
Installation de .NET Core
L’installation est assez simple, si vous avez suivi correctement l’article précédent sur l’installation d’Iis, vous deviez avoir ce qu’il faut.
- Installer le bundle .NET Core Windows Server Hosting sur votre serveur. Celui-ci va permettre de configurer votre environnement ainsi que d’installer les modules de ASP.NET Core.
- Maintenant redémarrez votre serveur ou exécutez les commandes suivantes : net stop a/y puis net start w3svc dans le CMD afin de mettre à jour le PATH de votre serveur.
Pour ASP.NET Core, à l’inverse de ASP.NET traditionnel, celui-ci est exécuté dans un processus externe à IIS. L’avantage ici c’est que vous pouvez très bien installer Apache ou NGinx pour héberger votre application, de plus la version Core étant multiplateforme (Mac, Linux, Tizen), il faut le moins possible de dépendance système.
Configuration de votre application Core
Si vous avez opté pour la configuration par défaut d’un projet ASP.NET Core MVC vous n’aurez pas de problème, pour les autres cependant il vous faut configurer correctement votre Startup.cs ainsi que Program.cs. Dans votre fichier Program.cs il vous faut simplement la ligne .UseIISIntegration()
dans le WebHostBuilder
comme ci-dessous.
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
Bonne nouvelle, la documentation nous informe que l’ajout de cette ligne n’affecte en aucun cas la portabilité de notre code, sur un serveur linux l’instruction sera simplement ignorée. Pour ceux qui voudraient par la suite configurer IIS plus en profondeur, dans votre Startup.cs, méthode ConfigureServices
vous pourrez le faire en ajoutant cette ligne :
services.Configure<IISOptions>(options => {
... //Vos paramètres
});
Votre projet est maintenant bon ! Il ne nous reste plus qu’à configurer un site internet dans IIS. Pour que notre site soit en ligne !
Configuration de notre site sur IIS
Nous avons maintenant la configuration nécessaire pour faire fonctionner notre site internet ASP.NET Core. Je vous invite à ouvrir le Gestionnaire des services Internet (IIS).
Ouvrez l’onglet contenant le nom de votre serveur, vous devez voir apparaître un dossier du nom de Sites. Faites un clique droit dessus puis Ajouter un site Web …, configurer le nom de votre site internet, sa position sur votre disque. Une fois cela effectuer un nouveau site internet est en ligne sur votre serveur.
Maintenant au-dessus de dossier Sites, sélectionné Applications Pools. Vous devriez voir le nom de votre nouveau site internet dans la liste, faite un clique droit puis Paramètres de base, une petite fenêtre va s’ouvrir et dans la section Version du CLR .NET choisissez Aucun code managé ainsi que Intégré pour le pipeline.
Bravo ! Maintenant il ne vous reste plus qu’à mettre votre site internet ou application ASP.NET Core dans le dossier de notre nouveau site et celui-ci fonctionnera !