Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe

Les projets ASP.NET 5 – partie 4/4

Poster un commentaire

Important: la plateforme a profondément évoluée. cet article n’est plus vraiment d’actualité, tout a changé.

 

Nous voici à la fin de ce tutoriel.

Nous avons maintenant un projet complet, il ne reste plus qu’à le déployer et le faire tourner. Voyons ce que nous propose Core à ce sujet.

Choix de l’hôte d’exécution

MVC propose par défaut un support pour 3 hébergements:
  1. IIS
  2. Kestrel
  3. WebListener
On peut trouver quelques compléments ici:
On les lance via des commandes ou bien VS. Les commandes apparaissent dans le fichiers project.json. On a au moins celle-ci par défaut:
as79
Elle permet de lancer l’application dans Kestrel qui a déjà été présenté. Il est bien entendu possible de créer ses propres commandes.
Pour lancer une commande on lance la console batch et on l’ouvre dans le répertoire du projet, celui où se trouve le project.json.
La commande s’appelle web, on peut alors lancer:
dnx web
as80
Kestrel est à l’écoute sur le port 5000. On pourrait utiliser un autre port en utilisant cette déclaration:
« web »: « Microsoft.AspNet.Server.Kestrel –server.urls http://localhost:6000 »
Le framework fournit un troisième hôte possible: WebListener. On doit juste renseigner:
as81
Il est également possible de faire une sélection depuis VS:
as82

Déploiement

Nous disposons de 4 options de déploiement:
  1. Lancer le projet directement:
    On copie le projet, on restaure les packages puis on lance
  2. Compiler sur sa machine, copier les assemblages, puis lancer
  3. Package
    Création d’un package Nuget
  4. Publier
Les deux premières méthodes sont des méthodes déjà présentes dans les versions qui précède d’ASP.Net.
On va se focaliser sur les méthodes de déploiement spécifiques à Core et donc les deux suivantes.
Le déploiement est mis en œuvre avec l’outil en ligne de commande dnu.
as83
Quatre types de déploiement sont pris en charge avec autant de commandes:
  1. dnx run
  2. dnu build
  3. dnu pack
  4. dnu publish
 
On peut publier soit depuis Visual Studio avec le menu Publish:
as84
Soit en ligne de commande avec la commande publish.
Plaçons nous dans le répertoire du projet:
dnu publish -o c:\temp\monappli
Le système de répertoire qui suit est alors déployé:
as85
Wwwroot a le même contenu que le répertoire de même nom du projet. AppRoot contient 3 sous-répertoires et des commandes.
as86
Src est le répertoire du même nom du projet à l’exception de wwwroot. Package contient les packages Nuget.
On pourrait démarrer directement le site en allant dans approot et en lançant la commande web que nous avons déjà décrit:
as87

Déployer dans IIS

Contrairement à ASP.NET, Core n’est plus hébergé de façon privilégiée dans IIS. Il devient un hôte comme les autre et on doit donc utiliser la plomberie mise en œuvre par HttpPlatformHandler pour héberger Core. C’est celle-là même qui peut servir à héberger le site dans Node, Java…
C’est ici qu’intervient le fichier web.config trouvé dans wwwroot. On doit juste veillez à ce que ces déclarations soient en place:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
   <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
   <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
</system.webServer>
</configuration>
On créée un site:
as89
On donne un nom, on fait pointer sur le répertoire wwwroot qui a été publié et on sélectionne un numéro de port.
Pour finir, on va dans le pool d’application du site:
as90
On choisit « No Managed Code« . C’est normal car ce n’est plus IIS qui héberge la CLR.
Il n’y a plus qu’à lancer le site, c’est terminé.
Si jamais vous recevez une erreur 500.19:
as91
C’est que HttpPlatformHandler n’est pas installé. On le fait avec Web Platform Installer.

Bibliographie

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s