Tester votre application ASP.NET MVC ou WebForms sous IIS 7 en 30 secondes

L'un des avantages d'IIS par rapport à IIS Express et Cassini est la facilité de tester votre application Web à partir d'ordinateurs distants. Dans ce tutoriel nous allons voir comment tester une application ASP.NET MVC ou WebForms sous IIS.

Langage/Outil/Technologie : ASP.NET MVC 3, WebForms, C#, Visual Studio 2010, IIS 7.

Commentez ce tutoriel : Commentez Donner une note à l'article (4)

Article lu   fois.

Les deux auteur et traducteur

Traducteur : Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Traduction

Ce tutoriel est la traduction la plus fidèle possible du tutoriel original de Rick Anderson, Test your ASP.NET MVC or WebForms Application on IIS 7 in 30 seconds.

Tester votre application ASP.NET MVC ou WebForms sous IIS 7 en 30 secondes

Une demande fréquente dans les forums ASP.NET est qu'une application fonctionne correctement avec Cassini (connu aussi comme le serveur de développement intégré à Visual Studio), mais échoue lorsqu'elle est déployée sur un vrai serveur IIS. Les deux raisons les plus courantes de cet échec sont :

  1. Cassini s'exécute au niveau racine, ainsi même lorsque les ressources (telles que les fichiers CSS et JavaScript) ne sont pas correctement référencées elles fonctionnent toujours. Par exemple, créez une nouvelle « Application MVC 3 » et modifiez le CSS et le jQuery comme indiqué ci-dessous :

    @*<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>*@

    <linkhref="/Content/Site.css""rel="stylesheet"type="text/css" />
       <scriptsrc="/Scripts/jquery-1.5.1.min.js"type="text/javascript"></script>

    L'application continue de fonctionner. Toutefois, lorsque vous l'exécutez sous IIS, la validation côté client ne fonctionne plus et vous ne disposez plus du style CSS. L'application paraît moche :
    Image non disponible

    Ce problème, supposant un accès racine aux ressources, est tellement commun de telle sorte que la plupart des livres sur ASP.NET MVC et plusieurs tutoriels sur ASP.NET MVC contiennent des exemples qui ne fonctionnent pas sous IIS.
  2. Cassini s'exécute sous les informations d'identification de l'utilisateur connecté, c'est-à-dire vous, et vous êtes souvent connecté en tant qu'administrateur. IIS s'exécute sous l'identité d'un pool d'applications, et pour des raisons de sécurité dispose d'un accès beaucoup plus limité qu'un administrateur. L'accès à n'importe quelle ressource (un serveur SQL distant, un fichier local) échoue fréquemment lorsqu'on est sur IIS.

IIS Express est une amélioration notable par rapport à Cassini, mais ne résout aucun de ces deux problèmes. IIS comporte des avantages supplémentaires par rapport à IIS Express :

  1. il est plus facile de tester votre application à partir d'ordinateurs distants ;
  2. il est plus facile de configurer et de tester SSL. Voir l'article « Test SSL amélioré, accéléré et facilité pour ASP.NET MVC et WebForms ».

Puisque IIS est lié au système d'exploitation, vous devez disposer de Windows Vista SP1 voire une version plus récente afin de tester avec IIS 7. (Windows 7 SP 1 est la version privilégiée.)

Installation de IIS 7

  1. Exécutez le « Web Platform Installer » (WPI).
  2. Dans le panneau de gauche, sélectionnez « All ». Dans les onglets, sélectionnez « Products ».
  3. Installez « IIS 7 Recommended Configuration ».
    Image non disponible
  4. Dans le menu Démarrer, saisissez « iis », puis sélectionnez « Internet Information Services (IIS) Manager ».
    Image non disponible
    Le gestionnaire de IIS est affiché.
    Image non disponible

Créez une nouvelle application ou application Web ASP.NET MVC 3, en acceptant toutes les propositions par défaut. Si vous souhaitez suivre ce tutoriel, nommez-la MvcFun.

Image non disponible

IIS ne peut pas exécuter un projet ASP.NET qui a été créé dans le dossier de projet par défaut de Visual Studio (C:\users\<user>\Documents\Visual Studio 2010\Projects). Sélectionnez un dossier où IIS peut accéder aux fichiers, tel que C:\Webs.

Faites un clic droit sur la solution et sélectionnez « Propriétés ».

Image non disponible
  1. Sélectionnez Web dans le panneau de gauche.
  2. Dans la zone Serveurs, sélectionnez la case d'option Utiliser le serveur Web IIS local.
  3. Cliquez sur le bouton Créer un répertoire virtuel.
Image non disponible

Si vous obtenez le message d'erreur suivant :

« Unable to create the virtual directory. To access Web sites on the local IIS Web server, you must run Visual Studio under an Administrator account. »
Image non disponible

Lisez le message et suivez les instructions, et vous serez récompensé d'un message plus convivial.

Image non disponible

Maintenant, retournez au gestionnaire de IIS, actualisez et déployez l'arborescence jusqu'à atteindre le nœud Default Web Site (Site Web par défaut). Sélectionnez Browse *:80(http) dans le panneau de droite.

Image non disponible

Si vous obtenez le message d'erreur suivant concernant l'analyseur, vous devez compiler votre application :

Server Error in '/MvcFun' Application.

Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Could not load type 'MvcFun.MvcApplication'.
Source Error:

Line 1: <%@ Application Codebehind="Global.asax.cs" Inherits="MvcFun.MvcApplication" Language="C#" %>

Source File: /MvcFun/global.asax Line: 1

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.225

Test de votre application

Après la compilation, actualisez votre navigateur. Dans l'URL du navigateur, modifiez le nom « localhost » en celui de votre ordinateur. Dans la capture ci-dessous, je suis en train d'utiliser l'ordinateur Q3.

Image non disponible

Utilisez un autre ordinateur pour tester cette URL. Si vous n'arrivez pas à accéder à l'application Web à partir d'un ordinateur distant, vous devriez peut-être configurer le pare-feu sur l'ordinateur qui héberge les pages Web.

Pour permettre l'accès au serveur Web via le pare-feu Windows

  1. Dans la zone « Recherche de programmes et de fichiers » de Windows, saisissez « firewall ».
  2. Sélectionnez « Autoriser un programme ou une fonctionnalité via le Pare-feu Windows ».
    Image non disponible
  3. Cliquez sur « Modifier les paramètres » et faites défiler la page vers le bas.
    Image non disponible
  4. Cochez Services World Wide Web (HTTP).
  5. Vérifiez que l'URL de votre application ASP.NET MVC 3 fonctionne à présent depuis un ordinateur distant.

Conclusion

Dans ce tutoriel, nous avons vu comment tester une application ASP.NET MVC 3 ou WebForms sous IIS 7.

Remerciements

Je tiens ici à remercier Rick Anderson de m'avoir autorisé à traduire son article.
Je remercie h2s84 pour sa relecture technique et ses propositions.
Je remercie également ClaudeLELOUP pour sa relecture orthographique et ses propositions.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2013 Rick Anderson. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.