Vue d'ensemble du déploiement ASP.NET

Mise à jour : novembre 2007

Après avoir développé un site Web, vous pouvez le déployer sur un serveur Web pour le tester (un serveur intermédiaire) ou sur un serveur où les utilisateurs peuvent utiliser le site (un serveur de production). Il existe plusieurs façons de déployer un site Web, dont la précompilation.

Cette rubrique contient les sections suivantes :

  • Scénarios

  • Fonctionnalités de déploiement

  • Contexte

  • Exemples de code

Scénarios

Après avoir développé un site Web dans Visual Studio, vous pouvez sélectionner l'une de ces méthodes de déploiement :

  • Copiez les fichiers du site Web dans le serveur cible à l'aide des outils de Visual Studio.

  • Précompilez le site et copiez la sortie à l'emplacement souhaité, par exemple un serveur de production.

Retour au début

Fonctionnalités

Visual Studio fournit les options de déploiement de site Web suivantes :

  • Outil Copier le site Web qui copie le site Web actif dans le serveur cible.

  • Utilitaire Publier le site Web qui compile un site Web dans un jeu de fichiers exécutables. Vous pouvez ensuite copier les fichiers sur le serveur cible en appliquant la méthode de votre choix.

    Remarque :

    L'utilitaire Publier le site Web n'est pas disponible dans Microsoft Visual Web Developer Express.

Retour au début

Contexte

Visual Studio fournit l'outil Copier le site Web qui copie les fichiers du site Web actif sur le serveur cible. Il fournit également l'utilitaire Publier le site Web qui compile le site Web dans un jeu de fichiers exécutables. Vous pouvez ensuite copier les fichiers sur le serveur cible en appliquant la méthode de votre choix.

Remarque :

Vous pouvez également créer des sites Web à l'aide d'un projet d'application Web. Dans un projet d'application Web, tous les fichiers de classe sont compilés dans un assembly unique. Pour plus d'informations, consultez Vue d'ensemble des projets d'application Web.

Outre la création d'un site Web et son déploiement sur un serveur cible, vous pouvez également créer un site Web FTP (File Transfer Protocol). Dans ce cas, vous devez créer et modifier les fichiers directement sur le serveur cible. Cela permet d'utiliser facilement un site Web sur un serveur hébergé.

Outil Copier le site Web

L'outil Copier le site Web ressemble à un utilitaire FTP. Vous pouvez ouvrir un dossier sur le serveur cible, puis transférer les fichiers entre le site Web actif et le site Web cible. L'outil Copier le site Web prend en charge une fonction de synchronisation qui examine les fichiers des deux sites Web et vérifie automatiquement que les versions des fichiers de ces sites sont à jour.

Remarque :

Si le serveur cible est un serveur FTP, vous pouvez ouvrir et modifier les fichiers sur le serveur en créant un site Web FTP. Pour plus d'informations, consultez Sites Web déployés par FTP.

L'outil Copier le site Web prend en charge les fonctionnalités suivantes :

  • Vous pouvez copier les fichiers sources, notamment les fichiers .aspx et les fichiers de classe, sur le serveur cible. Dans ce scénario, les pages Web sont compilées dynamiquement lorsqu'elles sont demandées.

  • Vous pouvez ouvrir et copier les fichiers à partir de n'importe quel type de site Web pris en charge dans Visual Studio. Cela inclut les sites Web IIS (Internet Information Services) locaux ou distants et les sites Web FTP. Le serveur cible ne requiert pas d'extensions serveur FrontPage.

  • La fonction de synchronisation examine les fichiers des deux sites Web et vérifie automatiquement que les versions des fichiers des deux sites sont à jour.

  • Avant de copier les fichiers d'application, l'outil Copier le site Web place un fichier nommé App_offline.htm dans le répertoire racine du site Web cible. Tant que le fichier App_offline.htm existe, toute requête effectuée sur le site Web est redirigée vers ce fichier. Le fichier affiche un message convivial qui indique aux clients que le site Web est en cours de mise à jour. Une fois tous les fichiers du site Web copiés, l'outil Copier le site Web supprime le fichier App_offline.htm du site Web cible.

Utilitaire Publier le site Web

L'utilitaire Publier le site Web précompile le contenu du site Web, notamment les pages Web (fichiers .aspx) et le code. Il copie ensuite la sortie dans le répertoire ou à l'emplacement du serveur de votre choix. Vous pouvez publier directement en tant que partie du processus de précompilation. Vous pouvez également précompiler localement, puis copier les fichiers vous-mêmes. Cet utilitaire compile le site Web et supprime le code source des fichiers, en laissant uniquement les fichiers stub pour les pages et les assemblys compilés. Lorsque les utilisateurs demandent des pages, ASP.NET répond à la requête à partir des assemblys précompilés.

Remarque :

L'utilitaire Publier le site Web n'est pas disponible dans Microsoft Visual Web Developer Express.

Projets d'application Web

Au lieu d'utiliser l'utilitaire Publier le site Web, vous pouvez créer des sites Web à l'aide d'un projet d'application Web. Dans un projet d'application Web, tous les fichiers de classe étant compilés dans un assembly unique, seul cet assembly doit être déployé avec les fichiers .aspx et .ascx et d'autres fichiers de contenu statique (ce modèle de projet d'application Web est semblable au modèle utilisé dans Visual Studio .NET 2003). Dans ce modèle, les fichiers .aspx ne sont pas compilés jusqu'à leur exécution dans le navigateur. Pour plus d'informations sur les projets d'application Web, consultez Vue d'ensemble des projets d'application Web.

Choix d'un outil de déploiement

Votre choix entre l'outil Copier le site Web ou l'utilitaire Publier le site Web dépend de la manière dont vous voulez utiliser et gérer votre site.

Choix de l'outil Copier le site Web

Avantages de l'outil Copier le site Web :

  • Le déploiement est une opération simple qui consiste à copier les fichiers du site Web vers l'ordinateur cible.

  • Pour effectuer le déploiement vers un ordinateur cible, vous pouvez utiliser n'importe quel protocole de connexion pris en charge par Visual Studio. Vous pouvez copier les fichiers dans un dossier partagé ou sur un autre ordinateur du réseau. Vous pouvez utiliser le protocole FTP pour copier les fichiers sur un serveur ou le protocole HTTP pour les copier sur un serveur qui prend en charge les extensions FrontPage Server.

  • Vous pouvez apporter des modifications ou corriger des erreurs dans les pages directement sur le serveur.

  • Si vous travaillez sur un projet dont les fichiers sont stockés sur un serveur central, vous pouvez utiliser la fonction de synchronisation pour vérifier que les versions locales et distantes des fichiers sont synchronisées.

Inconvénients de l'outil Copier le site Web :

  • Le site est copié en l'état. Par conséquent, si des fichiers contiennent une erreur de compilation, l'erreur n'est détectée que lorsque quelqu'un (peut-être un utilisateur) exécute la page qui génère l'erreur.

Choix de l'utilitaire Publier le site Web

Avantages de l'utilitaire Publier le site Web :

  • Le processus de précompilation permet de détecter des erreurs de compilation et des erreurs potentielles dans le fichier Web.config et dans d'autres fichiers sans code.

  • Le code source est supprimé du site Web en incluant éventuellement le balisage dans les fichiers Web ASP.NET et les contrôles utilisateur. Cela constitue un moyen de protection de votre propriété intellectuelle et rend plus difficile l'accès au code source du site.

  • Les pages du site étant déjà compilées, il n'est pas nécessaire de les compiler de façon dynamique lorsqu'elles sont demandées pour la première fois. Cela permet de réduire le temps de réponse initial d'une page (lorsque les pages sont compilées de façon dynamique, la sortie est mise en cache pour les requêtes suivantes).

Inconvénients de l'utilitaire Publier le site Web :

  • Selon les options de publication spécifiées, vous devrez peut-être recompiler le site si vous y apportez des modifications. L'utilitaire Publier le site Web n'est donc pas forcément pratique pour développer un site et apporter de fréquentes modifications aux pages.

  • L'utilitaire Publier le site Web ne peut pas déployer le site compilé sur un serveur distant. Il peut seulement le copier dans l'ordinateur local ou dans un autre ordinateur situé sur le réseau local.

    Remarque :

    L'utilitaire Publier le site Web écrase les fichiers situés dans le dossier cible et les sous-dossiers. Vérifiez que vous publiez à un emplacement où le contenu existant peut être supprimé.

Utilisation de l'outil Copier le site Web

Vous pouvez utiliser l'outil Copier le site Web pour transférer des fichiers de l'ordinateur local vers un serveur intermédiaire ou un serveur de production. Il se révèle particulièrement utile lorsque vous ne pouvez pas ouvrir les fichiers à partir du site distant pour les modifier. Il permet de copier les fichiers sur l'ordinateur local, de les modifier, puis de les recopier sur le site distant. Il peut également servir à copier des fichiers d'un serveur intermédiaire vers le serveur de production lorsque vous avez fini votre développement.

Remarque :

Si vous copiez une application qui contient une référence à un composant personnalisé enregistré dans le GAC, le composant ne sera pas copié avec l'application. Pour plus d'informations, consultez Comment : ajouter une référence à un composant .NET ou COM dans un site Web.

Sites sources et distants

L'outil Copier le site Web copie des fichiers entre un site source et un site distant. Ces termes servent à distinguer les deux sites utilisés par l'outil. Ils ont une signification spécifique :

  • Site source   Le site source correspond au site ouvert dans Visual Studio.

  • Site distant   Le site distant est celui vers lequel vous souhaitez copier des fichiers. Un site distant peut être un emplacement sur un autre ordinateur auquel vous accédez via les extensions FrontPage Server ou FTP. Dans ce cas, le site est réellement distant. Toutefois, le site distant peut également être un autre site sur votre propre ordinateur. Par exemple, vous pouvez publier depuis un site Web de système de fichiers sur votre ordinateur vers un site Web IIS local se trouvant également sur votre ordinateur. Dans ce cas, bien que le site soit en local sur votre ordinateur, il est considéré comme site distant par l'outil Copier le site Web.

Notez que le site source n'est pas nécessairement la source de la copie. Vous pouvez copier du site distant vers le site source.

Synchronisation des sites

Le processus de synchronisation examine les fichiers sur le site local et le site distant et vérifie que tous les fichiers sur les deux sites sont à jour. Par exemple, si un fichier du site distant est plus récent que la version du même fichier sur le site source, ce fichier est copié sur le site source lors de la synchronisation des fichiers.

L'outil Copier le site Web ne fusionne pas les fichiers qui ont le même nom mais un contenu différent. Dans ce cas, la synchronisation permet de spécifier la version du fichier à conserver.

La synchronisation rend cet outil particulièrement bien adapté à un environnement multi-développeur où les développeurs conservent des copies du site Web sur leurs ordinateurs locaux. Les développeurs individuels peuvent copier leurs dernières modifications sur un serveur distant partagé. Ils peuvent également mettre à jour leur ordinateur local avec les fichiers modifiés par d'autres développeurs. Les nouveaux développeurs se joignant à un projet peuvent rapidement obtenir des copies des fichiers d'un site Web. Pour cela, ils peuvent créer un site Web local sur l'ordinateur local, puis le synchroniser avec le site situé sur le serveur partagé.

État des fichiers

Pour synchroniser des fichiers, l'outil Copier le site Web a besoin d'informations sur l'état des fichiers sur les deux sites. Les informations conservées par l'outil comprennent donc l'horodatage des fichiers, ainsi que des informations supplémentaires requises pour la synchronisation. Par exemple, l'outil tient à jour une liste des dernières vérifications des fichiers, ce qui lui permet d'obtenir des informations et notamment de savoir si un fichier a été supprimé.

Lorsque vous vous connectez à un site (ou l'actualisez), l'outil compare l'horodatage des fichiers des deux sites et les informations conservées pour ces sites. Il indique ensuite l'état de chaque fichier. Le tableau suivant décrit l'état des fichiers.

État

Description

Inchangé

Le fichier n'a pas changé depuis la dernière copie du fichier.

Modifié

Le fichier a un horodatage plus récent que celui enregistré lors de la dernière copie du fichier.

Nouveau

Le fichier a été ajouté depuis la dernière copie du site.

Supprimé

Le fichier a été supprimé depuis la dernière copie du site. Si vous sélectionnez Afficher les fichiers supprimés dans l'outil Copier le site Web, une entrée pour le fichier est affichée dans la fenêtre.

Utilisation de l'utilitaire Publier le site Web

L'utilitaire Publier le site Web permet de publier des sites Web. Cela revient à compiler le site et à copier la sortie à l'emplacement souhaité, par exemple un serveur de production.

Remarque :

L'utilitaire Publier le site Web n'est pas disponible dans Visual Web Developer Express.

La publication effectue les tâches suivantes :

  • Précompilation des pages, du code source dans le dossier App_Code, etc. dans une sortie exécutable.

  • Écriture de la sortie exécutable dans un dossier cible.

    Remarque :

    Si vous publiez une application qui contient une référence à un composant personnalisé enregistré dans le GAC, le composant ne sera pas publié avec l'application. Pour plus d'informations, consultez Comment : ajouter une référence à un composant .NET ou COM dans un site Web.

Pour plus d'informations, consultez Vue d'ensemble de la précompilation ASP.NET.

Précompilation

La première étape lors de la publication consiste à précompiler le site Web. La précompilation exécute le processus de compilation qui se déclenche habituellement lors de la compilation dynamique d'une page intervenant lorsqu'elle est demandée pour la première fois dans un navigateur. Le processus de précompilation génère des assemblys à partir des pages, y compris le balisage et le code. Il compile également les fichiers dans les dossiers App_Code, App_GlobalResources, App_LocalResources et App_Themes.

Vous pouvez compiler à la fois des pages ASP.NET à fichier unique et des pages code-behind. Pour plus d'informations sur ces deux modèles, consultez Modèle de code des pages Web ASP.NET.

L'étape de précompilation intervenant dans la publication diffère de la compilation intervenant lors de la génération d'un site Web dans Visual Studio lorsque vous le testez. La génération compile le site ou la page actuelle, ainsi que tous les fichiers dépendants, puis l'exécute. Le processus de génération est une sorte de test, mais ne produit pas de sortie pouvant être déployée. En revanche, la précompilation lors de la publication crée dans le dossier spécifié une sortie que vous pouvez déployer sur un serveur de production.

Écriture de la sortie de précompilation

Une fois le processus de précompilation terminé, la sortie est écrite dans le dossier de votre choix. Vous pouvez écrire la sortie dans n'importe quel dossier auquel vous avez accès dans le système de fichiers, en utilisant le protocole FTP ou HTTP. Vous devez avoir les autorisations appropriées pour pouvoir écrire sur le site cible.

Remarque :

Le processus de publication déploie uniquement les fichiers des dossiers et sous-dossiers du site Web. Il ne déploie pas le fichier Machine.config. La configuration du serveur Web cible peut donc différer de celle de votre ordinateur. Cela peut affecter le comportement de l'application.

Vous pouvez spécifier un dossier cible sur un serveur intermédiaire ou un serveur de production ou écrire la sortie dans un dossier sur l'ordinateur local. Si vous spécifiez un dossier sur un serveur de production, vous pouvez effectuer la précompilation et le déploiement en une seule étape. Si vous choisissez d'écrire la sortie dans un dossier qui ne fait pas partie d'un site Web, vous pouvez la copier sur le serveur au cours d'une étape séparée.

Remarque :

Si vous ouvrez un site Web précompilé à l'aide de Visual Studio, vous ne pourrez pas générer le site Web. Les options de génération seront désactivées. Pour modifier un site Web publié, modifiez les fichiers du site Web d'origine, recompilez le site, puis publiez-le à nouveau.

La sortie du processus de compilation inclut les assemblys compilés pour le code ou les pages. Si vous choisissez l'option autorisant la mise à jour du site précompilé, toutes les classes code-behind de vos fichiers .aspx, .asmx et .ashx sont compilées dans des assemblys. Toutefois, les fichiers .aspx, .asmx et .ashx eux-mêmes sont copiés en l'état dans le dossier cible afin que vous puissiez modifier leur disposition après avoir déployé le site. Pour les sites précompilés pouvant être mis à jour, le code des pages à fichier unique n'est pas compilé dans un assembly. À la place, il est déployé en tant que code source.

Les fichiers statiques ne sont pas compilés. À la place, ils sont copiés en l'état dans le dossier de sortie. Les fichiers statiques comprennent des graphiques, des fichiers .htm ou .html, des fichiers texte, etc.

Si une erreur se produit lors de la précompilation, elle est signalée dans les fenêtres Sortie et Liste d'erreurs. En cas d'erreurs lors la précompilation, le site n'est pas compilé ni publié.

Retour au début

Exemples de code

Comment : copier des fichiers de site Web avec l'outil Copier le site Web

Comment : précompiler des sites Web ASP.NET à des fins de développement

Comment : signer des assemblys pour des sites Web précompilés

Comment : créer des assemblys dont la version est gérée pour les sites Web précompilés

Comment : générer des noms fixes avec l'outil de compilation ASP.NET

Comment : configurer des sites Web publiés

Procédure pas à pas : publication d'un site Web

Procédure pas à pas : copie d'un site Web à l'aide de l'outil Copier le site Web

Retour au début

Voir aussi

Concepts

Vue d'ensemble des projets d'application Web

Vue d'ensemble de la précompilation ASP.NET

Référence

Retour au début