IIS 8.0 fonctionnant avec ASP.NET 3.5 et ASP.NET 4.5
par Won Yoo
Compatibilité
Version | Notes |
---|---|
IIS 8.0 | Les versions ASP.NET 3.5 et ASP.NET 4.5 sont prises en charge sur IIS 8.0. |
IIS 7.5 | Les versions ASP.NET 3.5 et ASP.NET 4.5 sont prises en charge sur IIS 7.5. |
IIS 7.0 | Les versions ASP.NET 3.5 et ASP.NET 4.5 sont prises en charge sur IIS 7.0. |
Problème
Windows Server 2012 inclut .NET Framework 4.5 par défaut, ainsi que l’installation facultative de .NET 3.5 Framework. Les développeurs doivent fréquemment exécuter des applications web mixtes sur plusieurs versions de .NET Framework.
Solution
IIS 8.0 sur Windows Server 2012 exécute des applications ASP.NET sur toutes les versions de .NET Framework prises en charge par Windows Server 2012. Cela signifie que les applications ASP.NET peuvent s’exécuter sur IIS 8.0 avec .NET Framework 3.5 ou .NET Framework 4.5. IIS 8.0 héberge les versions de .NET Framework dans différents pools d’applications. Cela permet à plusieurs applications ASP.NET avec différentes versions de .NET Framework de s’exécuter simultanément sur Windows Server 2012.
IIS 8.0 prend également en charge la gestion des applications ASP.NET 3.5 et ASP.NET 4.5 à l’aide de l’outil graphique Gestionnaire IIS ainsi que les outils de gestion de ligne de commande d’IIS. Pour plus d’informations, consultez l’article Gestion de configuration IIS 8.0 ASP.NET.
Instructions pas à pas
Prérequis
- IIS est installé sur Windows Server 2012. Pour en savoir plus sur l’installation d’IIS 8, consultez Installation d’IIS 8 sur Windows Server 2012.
Configuration d’IIS 8.0 avec la prise en charge d’ASP.NET 3.5 et ASP.NET 4.5
Dans Windows Server 2012, .NET Framework 3.5 et .NET Framework 4.5 sont reconnus de façon native par le système d’exploitation. Cela signifie que les configurations basées sur l’IU et celles basées sur la ligne de commande peuvent être utilisées pour activer les deux versions de .NET Framework, ainsi que pour activer l’intégration des deux versions d’ASP.NET avec IIS 8.0.
Dans ce guide pas à pas, nous utilisons la nouvelle IU de Gestionnaire de serveur dans le serveur Windows Server 2012 pour illustrer l’activation d’ASP.NET 3.5 et ASP.NET 4.5 sur IIS 8.0.
Lorsque vous vous connectez pour la première fois à une nouvelle machine Windows Server 2012, la nouvelle IU du Gestionnaire de serveur s’affiche. Cliquez sur ajouter des rôles, comme indiqué ci-dessous :
Sur le premier écran de l’Assistant d’ajout de rôles et de fonctionnalités, cliquez sur Suivant. Cela permet d’afficher une page dans laquelle vous sélectionnez le type d’installation souhaité. Sélectionnez l’installation Basée sur un rôle ou Basée sur une fonctionnalité, tel qu’illustré ci-dessous :
Cliquez sur Suivant. L’écran suivant de l’assistant vous demande de choisir le serveur que vous configurez.
Ensuite, l’assistant vous invite à sélectionner un ou plusieurs rôles serveur. Défilez vers le bas dans la liste des Rôles et veillez à cocher la case Serveur web (IIS) comme indiqué ci-dessous :
Cliquez sur Suivant pour passer à la prochaine étape. Cela vous permet de sélectionner d’autres fonctionnalités spécifiques à installer sur le serveur. Cliquez de nouveau sur Suivant et passez à la prochaine étape.
L’étape suivante de l’assistant affiche des informations préliminaires sur le rôle Serveur web (IIS). Cliquez de nouveau sur Suivant et passez à la prochaine étape. Vous devriez désormais être à une étape de l’assistant qui ressemble à ceci :
Notez qu’un certain nombre de sous-fonctionnalités par défaut d’IIS ont déjà été activées, car vous avez précédemment sélectionné le rôle serveur Serveur web (IIS). Toutefois, nous voulons permettre à ASP.NET 3.5 et ASP.NET 4.5 de s’exécuter toutes les deux sur IIS 8.0. Nous devons donc activer certaines fonctionnalités supplémentaires associées à IIS. Défilez vers le bas dans la liste des Services de rôle jusqu’à ce que le nœud Développement d’application s’affiche. Ce nœud est réduit pour commencer. Cliquez dessus afin de le développer et pour afficher ses enfants :
Le nœud Développement d’application est l’endroit où nous activons l’intégration d’ASP.NET à IIS. Veuillez noter qu’il y a plusieurs cases dans la liste des fonctionnalités dont les noms sont similaires. Les cases qui nous intéressent dans ce guide sont les suivantes :
- ASP.NET 3. 5 : cette option permet à ASP.NET 3.5 de s’exécuter sur IIS 8.0. Veuillez noter que .NET Framework 3.5 n’est pas disponible en tant que composante de l’image de système d’exploitation de base dans Windows Server 2012. La charge utile se télécharge donc sur d’Internet et vous devez vous connecter à Internet.
- ASP.NET 4.5 : cette option permet à ASP.NET 4.5 de s’exécuter sur IIS 8.0.
Cliquez d’abord sur la case ASP.NET 3.5. Une fois cela fait, une boîte de dialogue supplémentaire s’affiche comme indiqué ci-dessous :
Étant donné qu’ASP.NET 3.5 est intégrée dans la configuration de Windows Server 2012, Windows Server 2012 connaît toutes les dépendances associées nécessaires pour activer ASP.NET 3.5 sur IIS 8.0. Cette boîte de dialogue contextuelle vous montre simplement les éléments automatiquement extraits et installés. Comme nous voulons qu’ASP.NET 3.5 soit activée, cliquez sur Ajouter les fonctionnalités requises.
Ensuite, cliquez sur la case ASP.NET 4.5 dans la liste des fonctionnalités Services de rôle. Le fait de cliquer sur les deux cases ASP.NET associées produit l’effet final illustré ci-dessous :
Bien que vous avez uniquement sélectionné directement les fonctionnalités ASP.NET 3.5 et ASP.NET 4.5, l’assistant a automatiquement activé un certain nombre d’autres éléments. Cette opération s’effectue automatiquement afin que les développeurs n’aient pas à choisir explicitement les différents composants nécessaires pour effectuer une « assembly » d’ASP.NET sur Windows Server 2012. À ce stade, cliquez sur Suivant pour accepter les modifications.
L’étape Confirmer les sélections d’installation affiche la liste de toutes les fonctionnalités installées si vous acceptez les modifications.
À ce stade, cliquez sur Installer pour accepter les modifications et installer la prise en charge complète d’ASP.NET sur Windows Server 2012.
Étant donné que l’installation prendra un petit moment, l’assistant affiche une boîte de dialogue de progression pendant l’installation :
Après quelques minutes, l’assistant indique que l’installation s’est terminée :
À ce stade, vous pouvez cliquer sur Fermer et quitter l’assistant.
Découverte de l’installation d’IIS 8.0
Maintenant qu’IIS 8.0 et l’intégration ASP.NET sont installées, nous pouvons examiner l’empreinte de base d’ASP.NET pour IIS 8.0.
Dans le menu Démarrer de Windows, sélectionnez Tous les programmes, puis développez le menu Outils d’administration. Dans la liste correspondante, recherchez Gestionnaire Internet Information Services (IIS) et sélectionnez-le pour lancer l’outil de gestion IIS graphique :
Une fois le Gestionnaire IIS lancé, développez le nœud serveur dans la fenêtre de gauche afin que les nœuds Pools d’applications et Sites s’affichent. Lorsque vous effectuez cette opération, le Gestionnaire IIS ouvre une boîte de dialogue qui vous demande si vous souhaitez rester connecté aux derniers Web Platform Components. Dans le cadre de ce guide pas à pas, vous pouvez cliquer sur Non. À ce stade, le Gestionnaire IIS ressemble à l’image suivante :
Cliquez sur le nœud Pools d’applications pour afficher les pools d’applications qui ont maintenant été installés pour une utilisation par IIS 8.0 :
Vous verrez que six pools d’applications différents sont créés par défaut lorsqu’ASP.NET 3.5 et ASP.NET 4.5 sont tous deux activés pour IIS 8.0. Quatre de ces applications sont nouvelles pour IIS 8.0, alors que deux autres pools d’applications ont été transférés à partir des versions précédentes de Windows.
- Remarque : bien que la colonne Version .NET Framework affiche « v2.0 » et « v4.0 » pour les versions de .NET Framework, celles-ci correspondent à ASP.NET 3.5 et ASP.NET 4.5. En raison du fonctionnement interne des liaisons de pools d’applications aux versions de .NET Framework, le nom de version réel écrit dans la configuration (et ainsi affiché dans l’outil) correspond à la version de fichier .NET Framework d’origine.
- Les noms Classic .NET AppPool et DefaultAppPool existaient dans les versions précédentes de Windows et continuent donc d’être créés pour IIS 8.0. Notez toutefois que le « DefaultAppPool » sur IIS 8.0 utilise également la version la plus récente du .NET Framework par défaut, étant donné que .NET Framework 4.5 est le .NET Framework par défaut à utiliser par Windows Server 2012.
- Les quatre autres pools d’applications sont nouveaux dans Windows Server 2012. Il existe deux pools d’applications pour l’exécution de .NET Framework 3.5 (.NET v2.0 et .NET v2.0 Classic) et deux pools d’applications pour l’exécution de .NET Framework 4.5 (.NET Framework 4.5 et .NET Framework 4.5 Classic).
- La différence entre les pools d’applications « classiques » et « non classiques » se résume au mode de pipeline managé pris en charge dans chaque type de pool d’applications. Les deux pools d’applications qui se terminent par « Classic » prennent en charge l’ancien mode de pipeline classique Windows Server 2003 pour ASP.NET. Les deux autres pools d’applications utilisent le mode de pipeline intégré plus récent pour ASP.NET introduit avec Vista/IIS7.0.
Explorez un peu plus loin et développez le nœud Sites sur le côté gauche de l’écran afin que le nœud Site web par défaut apparaisse :
Les installations par défaut d’IIS ont toujours un « Site web par défaut » configuré afin de recevoir les requêtes HTTP sur le port 80. Explorez le « Site web par défaut » pour savoir quelle version d’ASP.NET est prise en charge par défaut. Cliquez avec le bouton droit sur Site web par défaut, sélectionnez Gérer le site web, puis sélectionnez Paramètres avancés comme indiqué ci-dessous :
La boîte de dialogue Paramètres avancés s’affiche et montre (entre autres) le pool d’applications utilisé pour exécuter le « Site web par défaut ». Comme illustré dans l’image ci-dessous, le « Site web par défaut » s’exécute dans le pool d’applications appelé « DefaultAppPool » :
Si vous cliquez sur le petit bouton à points de suspension sur le côté droit du pool d’applications, une boîte de dialogue supplémentaire s’affiche pour afficher plus d’informations à propos de « DefaultAppPool ». Comme indiqué précédemment, le « DefaultAppPool » sélectionne ASP.NET 4.5 par défaut pour IIS 8.0. Par conséquent, les applications ASP.NET 4.5 déployées dans le « Site web par défaut » fonctionneront sans aucune autre configuration.
À ce stade, cliquez sur Annuler pour annuler à la fois la boîte de dialogue Sélectionner le pool d’applications et la boîte de dialogue Paramètres avancés.
Exécution des applications ASP.NET 3.5 et ASP.NET 4.5
Maintenant que vous avez exploré la configuration d’IIS 8.0, tentez d’exécuter un exemple de code ASP.NET pour confirmer que les applications ASP.NET 3.5 et ASP.NET 4.5 peuvent s’exécuter simultanément sur une seule installation d’IIS 8.0.
L’exemple de code pour ASP.NET 3.5 et ASP.NET 4.5 est contenu dans le fichier .zip suivant :
Configurez tout d’abord une application ASP.NET 3.5 simple sur IIS 8.0 :
Ouvrez le fichier « examples.zip ».
Dans l’Explorateur Windows sur votre ordinateur Windows Server 2012, accédez au répertoire « wwwroot » de votre installation IIS. Par exemple, si vous avez installé IIS sur le disque C:\, le répertoire « wwwroot » se trouvera dans
c:\inetpub\wwwroot
.Copiez le dossier « example35 » à partir de « examples.zip » et collez-le dans le répertoire
c:\inetpub\wwwroot
. Lorsque vous avez terminé, la structure du répertoire devrait ressembler à ce qui suit :
Le dossier « example35 » nouvellement créé doit être configuré en tant qu’application ASP.NET 3.5 dans le Gestionnaire IIS. Revenez à la fenêtre du Gestionnaire IIS, cliquez sur le nœud Site web par défaut et sélectionnez Actualiser. L’arborescence des nœuds enfants sous le Site web par défaut affiche désormais le dossier « example35 » :
Cliquez avec le bouton droit sur le dossier example35 et sélectionnez Convertir en application :
La boîte de dialogue Ajouter une application s’affiche. Par défaut, tous les répertoires dans Site web par défaut font partie du pool d’applications appelé DefaultAppPool. Cela signifie que les dossiers nouvellement créés qui contiennent ASP.NET s’exécutent par défaut en tant qu’applications ASP.NET 4.5.
Étant donné que nous voulons exécuter le dossier example35 en tant qu’application ASP.NET 3.5, le pool d’applications doit être modifié. Cliquez sur Sélectionner et la boîte de dialogue Sectionner le pool d’applications qui s’affiche. Remplacez le pool d’applications par .NET v2.0 comme indiqué ci-dessous :
Cliquez sur le bouton OK pour accepter la modification du pool d’applications, puis cliquez à nouveau sur OK pour valider les modifications apportées à IIS. La fenêtre de Gestionnaire IIS s’affiche à nouveau. Dans l’arborescence qui affiche « Site web par défaut », l’icône de « example35 » est modifiée pour indiquer qu’elle est désormais une application ASP.NET distincte.
À ce stade, ouvrez une instance Internet Explorer et accédez à l'URL suivante :
http://localhost/example35
Après une courte pause, l’application affiche la liste des fonctionnalités .NET Framework prises en charge dans cette application.
Dans l’Explorateur Windows, si vous accédez au répertoire
c:\inetpub\wwwroot\example35
, vous pouvez utiliser le bloc-notes pour examiner le code « default.aspx » et les informations dans « web.config ». Par exemple, le contenu du fichier web.config inclut des directives qui configurent les compilateurs .NET Framework pour qu’ils s’exécutent en mode « 3.5 ». Le code .NET Framework dans « default.aspx » illustre certaines constructions C# introduites dans .NET 3.5, en particulier les requêtes LINQ-to-Object.
Maintenant qu’il existe une application ASP.NET 3.5 en cours d’exécution, vous pouvez créer une deuxième application ASP.NET. Cette fois-ci, configurez-la pour utiliser .NET Framework 4.5.
Revenez à la fenêtre de l’Explorateur Windows dans laquelle le fichier .zip « examples.zip » est ouvert.
Ouvrez le contenu du dossier « example45 ».
Dans la deuxième fenêtre de l’Explorateur Windows que vous avez ouverte, accédez à
c:\inetpub\wwwroot
.Copiez le fichier « default.aspx » à partir du fichier .zip et collez-le directement dans
c:\inetpub\wwwroot
. Le contenu du dossier pourc:\inetpub\wwwroot
doit maintenant ressembler à ceci :
Revenez sur Internet Explorer et accédez à l’URL suivante :
http://localhost/default.aspx
Après une petite pause, un deuxième pool d’applications démarre l’exécution d’une application ASP.NET 4.5 pour le « Site web par défaut ». Le navigateur affiche à nouveau une liste des fonctionnalités .NET Framework prises en charge dans cette application, avec une nouvelle entrée en fin de liste pour les variables à type dynamique (autrement dit, le mot clé dynamique introduit dans .NET Framework 4.0/4.5). Notez que, contrairement à l’application « example35 » qui nécessite des entrées web.config spéciales, aucun fichier web.config n’est requis pour configurer et exécuter la page « default.aspx » dans le « Site web par défaut ». Cela est dû au fait que .NET Framework 4.5 est le .NET Framework par défaut utilisé par les applications ASP.NET dans IIS 8.0 et qu’aucune configuration supplémentaire n’est donc requise.
Si vous utilisez le Bloc-notes pour ouvrir la page « default.aspx » que vous venez de copier, vous verrez également quelques modifications par rapport à la version du répertoire « example35 ». Il n’existe aucune directive d’espace de noms en haut de la page, car .NET Framework 4.5 est la valeur par défaut sur IIS 8.0. Le code de la page illustre l’utilisation d’une variable dynamique, qui est un concept de compilateur introduit dans .NET Framework 4.0/4.5.
Résumé
IIS 8.0 prend en charge l’exécution des applications ASP.NET 3.5 et ASP.NET 4.5 sur la même machine à l’aide de pools d’applications différents pour héberger chaque version de .NET Framework. La prise en charge par IIS 8.0 de plusieurs versions de .NET Framework permet aux développeurs et aux administrateurs de tirer pleinement profit d’IIS 8.0 tout en conservant la compatibilité descendante avec les applications web héritées de Windows Server 2008 R2.