Partager via


ASP.NET déploiement web à l’aide de Visual Studio : déploiement sur test

par Tom Dykstra

Cette série de tutoriels montre comment déployer (publier) une application web ASP.NET sur Azure App Service Web Apps ou sur un fournisseur d’hébergement tiers à l’aide de Visual Studio 2017. Pour plus d’informations sur la série, consultez le premier didacticiel de la série.

Pour obtenir une version actuelle du déploiement sur Azure, consultez Créer une application web ASP.NET Core dans Azure.

Vue d’ensemble

Dans ce tutoriel, vous allez déployer une application web ASP.NET sur Internet Information Server (IIS) sur votre ordinateur local.

En règle générale, lorsque vous développez une application, vous l’exécutez et testez-la dans Visual Studio. Par défaut, les projets d’application web dans Visual Studio 2017 utilisent IIS Express comme serveur web de développement. IIS Express se comporte plus comme IIS complet que le serveur de développement Visual Studio (également appelé Cassini), que Visual Studio 2017 utilise par défaut. Mais aucun serveur web de développement ne fonctionne exactement comme IIS. Par conséquent, une application peut exécuter et tester correctement dans Visual Studio, mais échouer lorsqu’elle est déployée sur IIS.

Vous pouvez tester de manière fiable votre application de deux manières :

  1. Déployez votre application sur IIS sur votre ordinateur de développement à l’aide du même processus que celui que vous utiliserez ultérieurement pour le déployer dans votre environnement de production.

    Vous pouvez configurer Visual Studio pour utiliser IIS lorsque vous exécutez un projet web, mais cela ne testerait pas votre processus de déploiement. Cette méthode valide votre processus de déploiement et que votre application s’exécute correctement sous IIS.

  2. Déployez votre application dans un environnement de test similaire à votre environnement de production.

    L’environnement de production de ces didacticiels est Web Apps dans Azure App Service. L’environnement de test idéal est une application web supplémentaire créée dans le service Azure. Bien qu’elle soit configurée de la même façon qu’une application web de production, vous l’utiliseriez uniquement pour les tests.

L’option 2 est le moyen le plus fiable de tester. Si vous utilisez l’option 2, vous n’avez pas nécessairement besoin d’utiliser l’option 1. Toutefois, si vous effectuez un déploiement sur un fournisseur d’hébergement tiers, l’option 2 n’est peut-être pas réalisable ou peut être coûteuse. Par conséquent, cette série de tutoriels présente les deux méthodes. Vous trouverez des conseils sur l’option 2 dans le didacticiel Déploiement dans l’environnement de production.

Pour plus d’informations sur l’utilisation de serveurs web dans Visual Studio, consultez Serveurs web dans Visual Studio pour ASP.NET projets web.

Rappel : Si vous recevez un message d’erreur ou qu’un message d’erreur ne fonctionne pas pendant que vous parcourez le tutoriel, veillez à consulter la page de résolution des problèmes.

Télécharger le projet de démarrage de l’Université Contoso

Téléchargez et installez la solution de démarrage et le projet Contoso University Visual Studio. Cette solution contient le didacticiel terminé.

Télécharger le projet de démarrage

Installer IIS

Pour effectuer un déploiement sur IIS sur votre ordinateur de développement, vérifiez que IIS et Web Deploy sont installés. Par défaut, Visual Studio installe Web Deploy, mais IIS n’est pas inclus dans la configuration Windows 10, Windows 8 ou Windows 7 par défaut. Si vous avez déjà installé IIS et que le pool d’applications par défaut est déjà défini sur .NET 4, passez à la section suivante.

  1. Il est recommandé d’utiliser web Platform Installer (WPI) pour installer IIS et Web Deploy. WPI installe une configuration IIS recommandée qui inclut les prérequis IIS et Web Deploy si nécessaire.

    Si vous avez déjà installé IIS, Web Deploy ou l’un de leurs composants requis, WPI installe uniquement ce qui manque.

    • Utilisez web Platform Installer pour installer IIS et Web Deploy :

      Installer IIS à l’aide de WPI

      Installer Web Deploy à l’aide de WPI

      Vous verrez des messages indiquant que IIS 7 sera installé. Le lien fonctionne pour IIS 8 dans Windows 8 ; mais pour Windows 8 et versions ultérieures, suivez les étapes suivantes pour vous assurer que ASP.NET 4.7 est installé :

    • Ouvrez Panneau de configuration> Programs>Programmes et fonctionnalités>activer ou désactiver les fonctionnalités Windows.

    • Développez les services Internet Information, les services World Wide Web et les fonctionnalités de développement d’applications.

    • Vérifiez que ASP.NET 4.7 est sélectionné.

      Sélectionner ASP.NET 4.7

    • Vérifiez que World Wide Web Services et IIS Management Console sont sélectionnés. Cela installe IIS et le Gestionnaire IIS.

      Sélectionner les services World Wide Web

    • Cliquez sur OK. Les messages de boîte de dialogue indiquant que l’installation a lieu s’affichent.

Après avoir installé IIS, exécutez le Gestionnaire IIS pour vous assurer que le .NET Framework version 4 est affecté au pool d’applications par défaut.

  1. Appuyez sur WINDOWS+R pour ouvrir la boîte de dialogue Exécuter .

    (Sur Windows 8 ou version ultérieure, entrez « exécuter » sur le Page de démarrage. Dans Windows 7, sélectionnez Exécuter dans le menu Démarrer. Si l’exécution n’est pas dans le menu Démarrer, cliquez avec le bouton droit sur la barre des tâches, sélectionnez Propriétés, sélectionnez l’onglet Menu Démarrer, Sélectionnez Personnaliser et sélectionnez Exécuter la commande.)

  2. Entrez « inetmgr », puis sélectionnez OK.

  3. Dans le volet Connexions , développez le nœud du serveur et sélectionnez Pools d’applications. Dans le volet Pools d’applications si DefaultAppPool est affecté à .NET Framework version 4 comme dans l’illustration suivante, passez à la section suivante.

    Inetmgr_showing_4.0_app_pools

  4. Si vous voyez seulement deux pools d’applications et que les deux sont définis sur .NET Framework 2.0, installez ASP.NET 4 dans IIS.

    Pour Windows 8 ou version ultérieure, consultez les instructions de la section précédente pour vous assurer que ASP.NET 4.7 est installé ou découvrez comment installer ASP.NET 4.5 sur Windows 8 et Windows Server 2012. Pour Windows 7, ouvrez une fenêtre d’invite de commandes en cliquant avec le bouton droit sur Invite de commandes dans le menu Démarrer de Windows et en sélectionnant Exécuter en tant qu’administrateur. Exécutez aspnet_regiis.exe pour installer ASP.NET 4 dans IIS à l’aide des commandes suivantes. (Dans les systèmes 32 bits, remplacez « Framework64 » par « Framework ».

    cd %windir%\Microsoft.NET\Framework64\v4.0.30319
    aspnet_regiis.exe –i
    

    Cette commande crée des pools d’applications pour .NET Framework 4, mais le pool d’applications par défaut reste défini sur 2.0. Vous déployez une application qui cible .NET 4 vers ce pool d’applications. Remplacez le pool d’applications par .NET 4.

  5. Si vous avez fermé le Gestionnaire IIS, réexécutez-le, développez le nœud du serveur et sélectionnez Pools d’applications.

  6. Dans le volet Pools d’applications , sélectionnez DefaultAppPool. Dans le volet Actions , sélectionnez Paramètres de base.

    Inetmgr_selecting_Basic_Settings_for_app_pool

  7. Dans la boîte de dialogue Modifier le pool d’applications, remplacez la version CLR .NET par .NET CLR v4.0.30319. Cliquez sur OK.

    Selecting_.NET_4_for_DefaultAppPool

Vous êtes maintenant prêt à publier une application web sur IIS. Tout d’abord, créez des bases de données pour les tests.

Installation de SQL Server Express

LocalDB n’est pas conçu pour fonctionner dans IIS. Votre environnement de test doit donc avoir SQL Server Express installé. Si vous utilisez Visual Studio 2010 SQL Server Express, il est déjà installé par défaut. Si vous utilisez Visual Studio 2012 ou version ultérieure, installez SQL Server Express.

Pour installer SQL Server Express, téléchargez-le et installez-le à partir du Centre de téléchargement : Édition Microsoft SQL Server 2017 Express.

Dans la première page du Centre d’installation SQL Server, sélectionnez Nouvelle installation autonome sql Server ou ajoutez des fonctionnalités à une installation existante et suivez les instructions qui acceptent les choix par défaut. Dans l’Assistant Installation, acceptez les paramètres par défaut. Pour plus d’informations sur les options d’installation, consultez Installer SQL Server à partir de l’Assistant Installation (installation) .

Créer des bases de données SQL Server Express pour l’environnement de test

L’application Contoso University a deux bases de données :

  1. Base de données d’appartenance
  2. Base de données d’application

Vous pouvez déployer ces bases de données sur deux bases de données distinctes ou sur une base de données unique. La combinaison de ces éléments facilite la jonction de base de données entre elles.

Si vous effectuez un déploiement sur un fournisseur d’hébergement tiers, votre plan d’hébergement peut également vous donner une raison de les combiner. Par exemple, le fournisseur peut facturer plus pour plusieurs bases de données ou même ne pas autoriser plusieurs bases de données.

Dans ce tutoriel, vous allez déployer sur deux bases de données dans l’environnement de test et sur une base de données dans les environnements de préproduction et de production.

Dans le menu Affichage de Visual Studio, sélectionnez Explorateur de serveurs (Explorateur de bases de données dans Visual Web Developer). Cliquez avec le bouton droit sur Connexions de données, puis sélectionnez Créer une base de données SQL Server.

Selecting_Create_New_SQL_Server_Database

Dans la boîte de dialogue Créer une base de données SQL Server, entrez « .\SQLExpress » dans la zone nom du serveur et « aspnet-ContosoUniversity » dans la zone Nouveau nom de base de données. Cliquez sur OK.

Créer aspnet-ContosoUniversity

Suivez la même procédure pour créer une base de données SQL Server Express School nommée ContosoUniversity.

L’Explorateur de serveurs affiche les deux nouvelles bases de données.

Nouvelles bases de données dans l’Explorateur de serveurs

Créer un script d’octroi pour les nouvelles bases de données

Lorsque l’application s’exécute dans IIS sur votre ordinateur de développement, l’application utilise les informations d’identification du pool d’applications par défaut pour accéder à la base de données. Toutefois, par défaut, le pool d’applications n’est pas autorisé à ouvrir les bases de données. Cela signifie que vous devez exécuter un script pour accorder cette autorisation. Dans cette section, vous allez créer ce script et l’exécuter ultérieurement pour vous assurer que l’application peut ouvrir les bases de données lorsqu’elle s’exécute dans IIS.

Dans un éditeur de texte, copiez les commandes SQL suivantes dans un nouveau fichier et enregistrez-la en tant que Grant.sql.

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO

Dans Visual Studio, ouvrez la solution Contoso University. Cliquez avec le bouton droit sur la solution (et non sur l’un des projets), puis sélectionnez Ajouter. Sélectionnez Élément existant, accédez à Grant.sql et ouvrez-le.

Remarque

Ce script est conçu pour fonctionner avec SQL Server Express 2012 ou version ultérieure et avec les paramètres IIS dans Windows 10, Windows 8 ou Windows 7, car ils sont spécifiés dans ce didacticiel. Si vous utilisez une autre version de SQL Server ou Windows, ou si vous configurez IIS sur votre ordinateur différemment, les modifications apportées à ce script peuvent être requises. Pour plus d’informations sur les scripts SQL Server, consultez la documentation en ligne de SQL Server.

Remarque

Remarque de sécurité Ce script donne db_owner des autorisations à l’utilisateur qui accède à la base de données au moment de l’exécution, c’est-à-dire ce que vous aurez dans l’environnement de production. Dans certains scénarios, vous pouvez spécifier un utilisateur disposant d’autorisations complètes de mise à jour de schéma de base de données uniquement pour le déploiement et spécifier pour l’exécution un autre utilisateur disposant d’autorisations uniquement pour lire et écrire des données. Pour plus d’informations, consultez Révision des modifications automatiques de Web.config pour Migrations Code First plus loin dans ce didacticiel.

Exécuter le script d’octroi dans la base de données d’application

Vous pouvez configurer le profil de publication pour exécuter le script d’octroi dans la base de données d’appartenance pendant le déploiement, car ce déploiement de base de données utilise le fournisseur dbDacFx. Vous ne pouvez pas exécuter de scripts pendant Migrations Code First déploiement, c’est-à-dire comment vous déployez la base de données d’application. Cela signifie que vous devez exécuter manuellement le script avant le déploiement dans la base de données d’application.

  1. Dans Visual Studio, ouvrez le fichier Grant.sql que vous avez créé précédemment.

  2. Sélectionnez Connecter.

    Bouton Se connecter

  3. Dans la boîte de dialogue Se connecter au serveur, entrez .\SQLExpress comme nom du serveur. Sélectionnez Connecter.

  4. Dans la liste déroulante de base de données, sélectionnez ContosoUniversity. Sélectionnez Exécuter.

    Dans la liste déroulante de base de données, sélectionnez ContosoUniversity. Sélectionnez Exécuter.

L’identité du pool d’applications par défaut dispose désormais des autorisations suffisantes dans la base de données d’application pour Migrations Code First pour créer les tables de base de données lors de l’exécution de l’application.

Publier sur IIS

Il existe plusieurs façons de déployer sur IIS à l’aide de Visual Studio et web Deploy :

  • Utilisez La publication en un clic de Visual Studio.
  • Publier à partir de la ligne de commande.
  • Créez un package de déploiement et installez-le à l’aide du Gestionnaire IIS. Le package a un fichier .zip avec tous les fichiers et métadonnées requis pour installer un site dans IIS.
  • Créez un package de déploiement et installez-le à l’aide de la ligne de commande.

Le processus que vous avez suivi dans les didacticiels précédents pour configurer Visual Studio pour automatiser les tâches de déploiement s’applique à toutes ces méthodes. Dans ces didacticiels, vous allez utiliser les deux premières méthodes. Pour plus d’informations sur l’utilisation de packages de déploiement, consultez Déploiement d’une application web en créant et en installant un package de déploiement web dans la carte de contenu de déploiement web pour Visual Studio et ASP.NET.

Avant de publier, vérifiez que vous exécutez Visual Studio en mode administrateur. Si vous ne voyez pas (Administrateur) dans la barre de titre, fermez Visual Studio. Dans la page d’accueil de Windows 8 (ou version ultérieure) ou dans le menu Démarrer de Windows 7, cliquez avec le bouton droit sur l’icône Visual Studio et sélectionnez Exécuter en tant qu’administrateur. Le mode Administrateur est requis uniquement pour la publication lorsque vous publiez sur IIS sur l’ordinateur local.

Créer le profil de publication

  1. Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet ContosoUniversity (et non sur le projet ContosoUniversity.DAL). Sélectionnez Publier. La page Publier s’affiche.

  2. Sélectionnez Nouveau profil. La boîte de dialogue Sélectionner une cible de publication s’affiche.

  3. Sélectionnez IIS, FTP, etc. Sélectionnez Créer un profil. L’Assistant Publication apparaît.

    Onglet Publier le profil de l’Assistant Web

  4. Dans le menu déroulant Publier la méthode, sélectionnez Web Deploy.

  5. Pour le serveur, entrez localhost.

  6. Pour le nom du site, entrez le site web par défaut/ContosoUniversity.

  7. Pour l’URL de destination, entrez http://localhost/ContosoUniversity.

    Le paramètre URL de destination n’est pas obligatoire. Lorsque Visual Studio termine le déploiement de l’application, il ouvre automatiquement votre navigateur par défaut à cette URL. Si vous ne souhaitez pas que le navigateur s’ouvre automatiquement après le déploiement, laissez cette zone vide.

  8. Sélectionnez Valider la connexion pour vérifier que les paramètres sont corrects et que vous pouvez vous connecter à IIS sur l’ordinateur local.

    Une coche verte vérifie que la connexion réussit.

    Onglet Publier la connexion de l’Assistant Web

  9. Sélectionnez Suivant pour passer à l’onglet Paramètres .

  10. La zone de liste déroulante Configuration spécifie la configuration de build à déployer. Laissez-le défini sur la valeur par défaut de Release. Vous ne déployez pas de builds de débogage dans ce tutoriel.

  11. Développez les options de publication de fichier. Sélectionnez Exclure les fichiers du dossier App_Data.

    Dans l’environnement de test, l’application accède aux bases de données que vous avez créées dans l’instance SQL Server Express locale, et non aux fichiers .mdf dans le dossier App_Data .

  12. Laissez le précompile pendant la publication et supprimez les fichiers supplémentaires à la destination décochées.

    Options de publication de fichiers sous l’onglet Paramètres

    La précompilation est une option qui est utile principalement pour les grands sites. Il peut réduire le temps de démarrage la première fois qu’une page est demandée après la publication du site.

    Vous n’avez pas besoin de supprimer d’autres fichiers, car il s’agit de votre premier déploiement et il n’y aura pas encore de fichiers dans le dossier de destination.

    Remarque

    Si vous sélectionnez Supprimer des fichiers supplémentaires à la destination pour un déploiement ultérieur sur le même site, veillez à utiliser la fonctionnalité d’aperçu afin de voir à l’avance quels fichiers seront supprimés avant de déployer. Le comportement attendu est que Web Deploy supprime les fichiers sur le serveur de destination que vous avez supprimé dans votre projet. Toutefois, l’ensemble de la structure des dossiers sous les dossiers source et de destination est comparé ; et dans certains scénarios, Web Deploy peut supprimer des fichiers que vous ne souhaitez pas supprimer.

    Par exemple, si vous disposez d’une application web dans un sous-dossier sur le serveur lorsque vous déployez un projet dans le dossier racine, le sous-dossier sera supprimé. Vous pouvez avoir un projet pour le site principal à contoso.com et un autre projet pour un blog à contoso.com/blog. L’application de blog se trouve dans un sous-dossier. Si vous sélectionnez Supprimer des fichiers supplémentaires à la destination lorsque vous déployez le site principal, l’application de blog est supprimée.

    Pour un autre exemple, votre dossier App_Data peut être supprimé de façon inattendue. Certaines bases de données telles que SQL Server Compact stockent les fichiers de base de données dans le dossier App_Data. Après le déploiement initial, vous ne souhaitez pas conserver la copie des fichiers de base de données dans les déploiements suivants. Vous devez donc sélectionner Exclure App_Data sous l’onglet Package/Publier le web. Une fois que vous avez supprimé des fichiers supplémentaires à la destination sélectionnée, vos fichiers de base de données et le dossier App_Data lui-même seront supprimés la prochaine fois que vous publiez.

Configurer le déploiement pour la base de données d’appartenance

Les étapes suivantes s’appliquent à la base de données DefaultConnection dans la section Bases de données de la boîte de dialogue.

  1. Dans la zone chaîne de connexion à distance, entrez la chaîne de connexion suivante qui pointe vers la nouvelle base de données d’appartenance SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=aspnet-ContosoUniversity;Integrated Security=True
    

    Le processus de déploiement place cette chaîne de connexion dans le fichier Web.config déployé, car l’utilisation de cette chaîne de connexion lors de l’exécution est sélectionnée.

    Vous pouvez également obtenir le chaîne de connexion à partir de l’Explorateur de serveurs. Dans l’Explorateur de serveurs, développez Connexions de données et sélectionnez la< base de données machinename>\sqlexpress.aspnet-ContosoUniversity, puis, dans la fenêtre Propriétés, copiez la valeur de la chaîne de connexion. Cette chaîne de connexion aura un paramètre supplémentaire que vous pouvez supprimer : Pooling=False.

  2. Sélectionnez Mettre à jour la base de données.

    Cela entraîne la création du schéma de base de données dans la base de données de destination pendant le déploiement. Dans les étapes suivantes, vous spécifiez les scripts supplémentaires que vous devez exécuter : un pour accorder l’accès à la base de données au pool d’applications par défaut et l’autre pour déployer des données.

  3. Sélectionnez Configurer les mises à jour de base de données.

  4. Dans la boîte de dialogue Configurer les mises à jour de base de données , sélectionnez Ajouter un script SQL. Accédez au script Grant.sql que vous avez enregistré précédemment dans le dossier solution.

  5. Répétez le processus pour ajouter le script aspnet-data-dev.sql .

    Configurer les mises à jour de base de données pour la base de données d’appartenance

  6. Sélectionnez Fermer.

Configurer le déploiement pour la base de données d’application

Lorsque Visual Studio détecte une classe Entity FrameworkDbContext, elle crée une entrée dans la section Bases de données qui a une case à cocher Exécuter Migrations Code First au lieu d’une case à cocher Mettre à jour la base de données. Pour ce tutoriel, vous allez utiliser cette case à cocher pour spécifier Migrations Code First déploiement.

Dans certains scénarios, vous utilisez peut-être une DbContext base de données, mais vous souhaitez utiliser le fournisseur dbDacFx au lieu de Migrations pour déployer la base de données. Dans ce cas, consultez Comment faire déployer une base de données Code First sans migrations ? dans le forum aux questions sur le déploiement web ASP.NET sur MSDN.

Les étapes suivantes s’appliquent à la base de données SchoolContext dans la section Bases de données de la boîte de dialogue.

  1. Dans la zone chaîne de connexion à distance, entrez la chaîne de connexion suivante qui pointe vers la nouvelle base de données d’application SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=ContosoUniversity;Integrated Security=True
    

    Le processus de déploiement place cette chaîne de connexion dans le fichier Web.config déployé, car l’utilisation de cette chaîne de connexion lors de l’exécution est sélectionnée.

    Vous pouvez également obtenir la base de données d’application chaîne de connexion à partir de l’Explorateur de serveurs de la même façon que vous avez obtenu la base de données d’appartenance chaîne de connexion.

  2. Sélectionnez Exécuter Migrations Code First (s’exécute au démarrage de l’application).

    Cette option entraîne le processus de déploiement à configurer le fichier Web.config déployé pour spécifier l’initialiseur MigrateDatabaseToLatestVersion . Cet initialiseur met automatiquement à jour la base de données vers la dernière version lorsque l’application accède à la base de données pour la première fois après le déploiement.

Configurer les transformations de profil de publication

  1. Sélectionnez Fermer. Sélectionnez Oui lorsque vous êtes invité à enregistrer les modifications.

  2. Dans Explorateur de solutions, développez Propriétés, développez PublishProfiles.

  3. Cliquez avec le bouton droit sur CustomProfile.pubxml et renommez-le Test.pubxml.

  4. Cliquez avec le bouton droit sur Test.pubxml. Sélectionnez Ajouter une transformation de configuration.

    Menu Ajouter une transformation de configuration

    Visual Studio crée le fichier de transformation Web.Test.config et l’ouvre.

  5. Dans le fichier de transformation Web.Test.config , insérez le code suivant immédiatement après la balise de configuration d’ouverture.

    <appSettings>
        <add key="Environment" value="Test" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    Lorsque vous utilisez le profil de publication de test, cette transformation définit l’indicateur d’environnement sur « Test ». Dans le site déployé, vous verrez « (Test) » après le titre « Contoso University » H1.

  6. Enregistrez et fermez le fichier.

  7. Cliquez avec le bouton droit sur le fichier Web.Test.config et sélectionnez Aperçu de la transformation pour vous assurer que la transformation que vous avez codée produit les modifications attendues.

    La fenêtre d’aperçu web.config affiche le résultat de l’application des transformations Web.Release.config et des transformations Web.Test.config .

Afficher un aperçu des mises à jour du déploiement

  1. Ouvrez à nouveau l’Assistant Publier le web (cliquez avec le bouton droit sur le projet ContosoUniversity, sélectionnez Publier, puis Aperçu).

  2. Dans la boîte de dialogue Aperçu , sélectionnez Démarrer l’aperçu pour afficher la liste des fichiers qui seront copiés.

    Publication en préversion

    Vous pouvez également sélectionner le lien aperçu de la base de données pour afficher les scripts qui s’exécutent dans la base de données d’appartenance. (Aucun script n’est exécuté pour Migrations Code First déploiement, il n’y a donc rien à afficher en préversion pour la base de données d’application.)

  3. Sélectionnez Publier.

    Si Visual Studio n’est pas en mode administrateur, vous pouvez recevoir un message d’erreur d’autorisation. Dans ce cas, fermez Visual Studio, ouvrez-le en mode administrateur et réessayez de publier.

    Si Visual Studio est en mode administrateur, la fenêtre Sortie signale la génération et la publication réussies.

    Output_window_publish_Test

    Si vous avez entré l’URL dans la zone URL de destination sous l’onglet Connexion du profil de publication, le navigateur s’ouvre automatiquement sur la page d’accueil de l’université Contoso s’exécutant dans IIS sur votre ordinateur.

Tester dans l’environnement de test

Notez que l’indicateur d’environnement affiche « (Test) » au lieu de « (Dev) », ce qui indique que la transformation Web.config pour l’indicateur d’environnement a réussi.

Exécutez la page Instructeurs pour vérifier que Code First a amorçage de la base de données avec des données d’instructeur. Lorsque vous sélectionnez cette page, le chargement peut prendre quelques minutes, car Code First crée la base de données, puis exécute la Seed méthode. (Cela n’a pas encore été fait lorsque vous étiez sur la page d’accueil, car l’application n’a pas encore essayé d’accéder à la base de données.)

Sélectionnez l’onglet Étudiants pour vérifier que la base de données déployée n’a pas d’étudiants.

Sélectionnez Ajouter des étudiants dans le menu Étudiants . Ajoutez un étudiant, puis affichez le nouvel étudiant dans la page Étudiants . Cela vérifie que vous pouvez écrire correctement dans la base de données.

Dans le menu Cours , sélectionnez Mettre à jour les crédits. La page Mettre à jour les crédits nécessite des autorisations d’administrateur, de sorte que la page de connexion s’affiche. Entrez les informations d’identification du compte d’administrateur que vous avez créées précédemment (« admin » et « devpwd »). La page Mettre à jour les crédits s’affiche. Cela vérifie que le compte d’administrateur que vous avez créé dans le didacticiel précédent a été correctement déployé dans l’environnement de test.

Vérifiez qu’un dossier ELMAH existe dans le dossier c :\inetpub\wwwroot\ContosoUniversity avec uniquement le fichier d’espace réservé dans celui-ci.

Passez en revue les modifications automatiques de Web.config pour Migrations Code First

Ouvrez le fichier Web.config dans l’application déployée sur C :\inetpub\wwwroot\ContosoUniversity et vous pouvez voir où le processus de déploiement configuré Migrations Code First pour mettre automatiquement à jour la base de données vers la dernière version.

Ouvrez le fichier Web.config dans l’application déployée sur C :\inetpub\wwwroot\ContosoUniversity et découvrez où le processus de déploiement configuré Migrations Code First pour mettre automatiquement à jour la base de données vers la dernière version.

Le processus de déploiement a également créé une nouvelle chaîne de connexion pour Migrations Code First à utiliser exclusivement pour mettre à jour le schéma de base de données :

Database_Publish chaîne de connexion

Cette chaîne de connexion supplémentaire vous permet de spécifier un compte d’utilisateur pour les mises à jour de schéma de base de données et un autre compte d’utilisateur pour l’accès aux données d’application. Par exemple, vous pouvez affecter le rôle db_owner à Migrations Code First et db_datareader avec des rôles db_datawriter à l’application. Il s’agit d’un modèle de défense en profondeur courant qui empêche le code potentiellement malveillant dans l’application de modifier le schéma de base de données. (Par exemple, cela peut se produire dans une attaque par injection SQL réussie.) Ces didacticiels n’utilisent pas ce modèle. Pour implémenter ce modèle dans votre scénario, procédez comme suit :

  1. Dans l’Assistant Publier le web sous l’onglet Paramètres, entrez l’chaîne de connexion qui spécifie un utilisateur disposant d’autorisations complètes de mise à jour de schéma de base de données. Désactivez la case à cocher Utiliser cette chaîne de connexion au moment de l’exécution. Dans le fichier Web.config déployé, il devient le DatabasePublish chaîne de connexion.

  2. Créez une transformation de fichier Web.config pour l’chaîne de connexion que vous souhaitez que l’application utilise au moment de l’exécution.

Résumé

Vous avez maintenant déployé votre application sur IIS sur votre ordinateur de développement et l’avez testée là-bas.

Page d’accueil dans Test

Cela vérifie que le processus de déploiement a copié le contenu de l’application à l’emplacement approprié (à l’exclusion des fichiers que vous ne souhaitez pas déployer) et que Web Deploy a configuré IIS correctement pendant le déploiement. Dans le tutoriel suivant, vous allez exécuter un test supplémentaire qui recherche une tâche de déploiement qui n’a pas encore été effectuée : définition des autorisations de dossier sur le dossier Elm ah .

Plus d’informations

Pour plus d’informations sur l’exécution d’IIS ou IIS Express dans Visual Studio, consultez les ressources suivantes :