Procédure pas à pas : déploiement d'un projet d'application Web à l'aide d'un package de déploiement Web (partie 3 sur 4)
Cette procédure est la troisième d'une série qui explique comment déployer un projet d'application Web à l'aide d'un package de déploiement Web. Pour plus d'informations sur la série de procédures pas à pas, consultez Procédure pas à pas : déploiement d'un projet d'application Web à l'aide d'un package de déploiement Web (partie 1 sur 4).
Dans cette procédure pas à pas, vous créez un package de déploiement qui sera utilisé pour déployer le projet d'application Web dans un environnement intermédiaire. Le package est créé à l'aide des paramètres qui vous permettent de modifier des valeurs de configuration au moment de l'installation. Cela vous permet d'utiliser également le même package pour le déploiement sur un serveur de production. Cette procédure pas à pas décrit les tâches suivantes :
Création d'un package pour la configuration de build Release.
Transformation des paramètres du fichier Web.config pour l'environnement de destination.
Insertion de scripts SQL personnalisés pendant le déploiement.
Déploiement de la base de données d'appartenance ASP.NET par défaut, mais qui exclut les informations de compte créées sur votre ordinateur local.
Utilisation de paramètres de déploiement personnalisés pour les valeurs de configuration que vous souhaitez pouvoir modifier lorsque le package est installé.
Composants requis
Pour obtenir la liste des composants requis, consultez Procédure pas à pas : déploiement d'un projet d'application Web à l'aide d'un package de déploiement Web (partie 1 sur 4).
Création d'une base de données de destination
Comme vous l'avez fait pour la configuration de build Debug dans les deux premières procédures pas à pas, vous déploierez le contenu des deux bases de données qui sont dans le dossier App_Data dans une base de données unique.
Si quelqu'un d'autre installe l'environnement de destination pour vous, il doit fournir la chaîne de connexion pour la base de données de destination. Si vous créez la base de données de destination vous-même, vous pouvez exécuter la procédure suivante, similaire à ce que vous avez fait dans la première procédure pas à pas.
Notes
Vous pouvez exécuter la procédure suivante sur le serveur de destination ou sur tout autre ordinateur, tant que la base de données peut être accessible du serveur de destination.Si vous créez la base de données sur un ordinateur qui n'est pas le serveur de destination, vous devez vous assurer que la base de données est accessible via une connexion à distance.Description de la procédure à suivre en dehors de la portée de cette procédure pas à pas.Pour plus d'informations, consultez Documentation en ligne de SQL Server.
Pour créer une base de données de destination
Dans l'Explorateur de serveurs, cliquez avec le bouton droit sur Connexions de données, puis cliquez sur Créer une nouvelle base de données SQL Server.
La boîte de dialogue Créer une nouvelle base de données SQL Server s'affiche.
Dans la zone Nom du serveur, entrez localhost\SQLExpress.
Dans la zone Nom de la nouvelle base de données, entrez AdventureWorksStaging.
Cliquez sur OK.
Définition de la configuration de build active
Dans les premières procédures pas à pas de cette série, vous avez configuré des paramètres de déploiement pour la configuration de build Debug. Cependant, certains paramètres de déploiement doivent être différents pour le déploiement sur un serveur intermédiaire et sur un serveur de production. Par exemple, vous ne souhaitez pas en général déployer des fichiers .pdb sur un serveur intermédiaire ou un serveur de production, parce que les fichiers .pdb sont utilisés uniquement pour le débogage. Par conséquent, vous devez créer des paramètres de déploiement pour la configuration de build Release. La première étape de ce processus consiste à s'assurer que la configuration de build Release est sélectionnée.
Pour définir la configuration de build active
Dans le menu Générer, cliquez sur Gestionnaire de configurations.
La boîte de dialogue Gestionnaire de configurations s'affiche.
Dans la liste déroulante Configuration de la solution active, sélectionnez Release.
En général, la liste Configuration de la solution active s'affiche également dans la barre d'outils Standard. Si tel est le cas, vous pouvez vérifier ou modifier la configuration de build sans ouvrir le Gestionnaire de configurations.
Fermez le Gestionnaire de configurations.
Spécification des paramètres du package de déploiement
L'étape suivante consiste à spécifier les fichiers et paramètres IIS à déployer pour la configuration Release et le mode de création du package. Dans la procédure suivante, vous faites ceci à l'aide de l'onglet Package/Publication Web de la page Propriétés du projet.
Pour spécifier les paramètres du package de déploiement de la configuration Release
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet puis cliquez sur Propriétés.
Sélectionnez l'onglet Package/Publication Web.
Dans la liste déroulante Configuration, vérifiez que l'option Active (Release) est sélectionnée.
Dans la liste déroulante Éléments à déployer (s'applique à toutes les méthodes de déploiement), vérifiez que l'option Uniquement les fichiers nécessaires à l'exécution de cette application est sélectionnée.
Activez la case à cocher Exclure les symboles de débogage générés.
Vous ne projetez pas d'autoriser le débogage lors de la mise en lots ou de la production. Par conséquent, vous ne souhaitez pas déployer de fichiers .pdb.
Activez la case à cocher Exclure les fichiers du dossier App_Data.
Assurez-vous que la case à cocher Inclure toutes les bases de données configurées sous l'onglet Package/Publication SQL est activée.
Assurez-vous que la case à cocher Créer un package de déploiement en tant que fichier zip est activée.
Assurez-vous que la zone Emplacement de création du package contient la valeur suivante (valeur par défaut si vous avez spécifié AdventureWorks comme nom du projet) :
obj\Release\Package\AdventureWorks.zip
Dans la zone Nom de site/application Web IIS à utiliser sur le serveur de destination, entrez site Web par défaut/AdventureWorks.
Enregistrez les modifications apportées à l'onglet Package/Publication Web.
Création d'un script personnalisé pour la base de données d'appartenance
Les paramètres de déploiement de la base de données pour le déploiement sur des serveurs intermédiaires et des serveurs de production sont similaires à ceux que vous avez entrés pour la configuration de build Debug. La différence est que vous ne souhaitez pas déployer les comptes d'utilisateur tests que vous avez entrés dans le système d'appartenance d'ASP.NET. Toutefois, vous ne pouvez pas spécifier le déploiement de la base de données Schéma uniquement pour la base de données d'appartenance d'ASP.NET. C'est parce que l'une des tables de la base de données contient des données de configuration qui sont obligatoires pour le système d'appartenance d'ASP.NET. Par conséquent, vous allez créer un script personnalisé pour ajouter les données de configuration.
Vous spécifierez que deux scripts s'exécuteront au moment du déploiement. Le premier script est celui généré automatiquement pour le paramètre Schéma uniquement. Le deuxième script est votre script personnalisé.
Dans la procédure suivante, vous créez un script personnalisé qui insère les données de configuration dans la table aspnet_SchemaVersions déployée.
Pour créer un script personnalisé pour insérer des données dans la table aspnet_SchemaVersions déployée
À une invite de ligne de commande, tapez la commande Web Deploy suivante :
"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:dbfullsql="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=[chemin complet vers aspnetdb.mdf]\aspnetdb.mdf;User Instance=true" -dest:dbfullsql="c:\temp\aspnet_SchemaVersions.sql
Cette commande Web Deploy crée un script de base de données nommé aspnet_SchemaVersions.sql et enregistre le script dans le dossier C:\Temp. Le script crée la base de données d'appartenance.
Vous pouvez enregistrer le script dans n'importe quel dossier. Souvenez-vous de l'emplacement, parce que vous accéderez au script à une étape ultérieure de cette procédure.
Remplacez [chemin complet vers aspnetdb.mdf] par le chemin d'accès réel du fichier aspnetdb.mdf. Si le dossier Program Files se trouve sur un autre lecteur, spécifiez la lettre de lecteur appropriée. Vous pouvez trouver le chemin d'accès du fichier aspnetmdb.mdf dans la propriété Chemin d'accès complet de la fenêtre Propriétés lorsque vous sélectionnez aspnetmdb.mdf dans l'Explorateur de solutions.
Ouvrez aspnet_SchemaVersions.sql dans un éditeur de texte tel que le Bloc-notes et supprimez tout sauf les instructions Insert pour la table aspnet_SchemaVersions.
Le fichier aspnet_SchemaVersions.sql ressemble maintenant à l'exemple suivant :
INSERT [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'common', N'1', 1) GO INSERT [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'health monitoring', N'1', 1) GO INSERT [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'membership', N'1', 1) GO INSERT [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'personalization', N'1', 1) GO INSERT [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'profile', N'1', 1) GO INSERT [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'role manager', N'1', 1) GO
Enregistrez et fermez aspnet_SchemaVersions.sql.
Spécification des paramètres de déploiement de la base de données
Dans la procédure suivante, vous spécifiez les bases de données à déployer et leur mode de déploiement. Vous ajoutez également le script personnalisé que vous avez créé dans la procédure précédente.
Pour spécifier des scripts SQL Server qui s'exécuteront pendant le déploiement
Cliquez sur l'onglet Package/Publication SQL.
Cliquez sur Importer à partir de Web.config.
Assurez-vous que la ligne ApplicationServices-Deployment dans la grille Entrées de la base de données est sélectionnée.
Dans la zone Chaîne de connexion pour la base de données de destination, entrez la chaîne de connexion pour la base de données de destination. Si vous déployez vers la base de données que vous avez créée dans une étape précédente, vous pouvez le faire en suivant ces étapes :
Dans l'Explorateur de serveurs, développez le dossier Connexions de données et sélectionnez la base de données AdventureWorksStaging.
Dans la fenêtre Propriétés, sélectionnez la valeur de la propriété Chaîne de connexion et copiez-la dans le Presse-papiers Windows.
Collez la chaîne de connexion dans la zone Chaîne de connexion pour la base de données de destination.
Dans la chaîne de connexion, remplacez localhost par le nom de votre ordinateur.
C'est obligatoire parce que vous effectuez un déploiement sur un ordinateur distant. Lorsque les scripts de déploiement s'exécutent sur cet ordinateur ou lorsque l'application s'exécute ici, localhost ne fait plus référence à votre ordinateur.
Assurez-vous que la case à cocher Extraire les données et/ou le schéma d'une base de données existante est activée.
Affectez à la liste Options de script pour la base de données la valeur Schéma uniquement.
Ajoutez le script aspnet_SchemaVersions.sql que vous avez créé précédemment en suivant ces étapes :
Cliquez sur le bouton Ajouter un script.
Dans la boîte de dialogue Sélectionner le fichier, naviguez jusqu'à C:\Temp\aspnet_SchemaVersions.sql, puis cliquez sur le bouton Ouvrir. (Si vous avez enregistré le script dans un dossier différent précédemment dans cette procédure pas à pas, utilisez ce nom du dossier.)
Le script de fichier aspnet_SchemaVersions.sql est ajouté à al grille Scripts de base de données.
Dans le tableau Entrées de la base de données, sélectionnez la ligne AWLTConnectionString-Deployment.
Dans la zone Chaîne de connexion pour la base de données de destination, entrez la même chaîne de connexion que celle que vous avez entrée pour la base de données ApplicationServices.
Assurez-vous que la case à cocher Extraire les données et/ou le schéma d'une base de données existante est activée.
Affectez à la liste Options de script pour la base de données la valeur Schéma et données.
Ajoutez un script qui accorde l'autorisation de lecture de la base de données au pool d'applications IIS en suivant ces étapes :
Si vous effectuez un déploiement vers la base de données que vous avez créée, modifiez le script AdventureWorksGrant.sql que vous avez créé dans la première procédure pas à pas de cette série. Supprimer la commande SQL CREATE LOGIN. Si vous effectuez un déploiement vers une base de données que quelqu'un d'autre crée pour vous, cette personne doit fournir un script.
La commande CREATE LOGIN doit être supprimée parce que l'ouverture de session est créée pour le serveur, et non pour une base de données.
Cliquez sur le bouton Ajouter un script.
Dans la boîte de dialogue Sélectionner le fichier, naviguez jusqu'au script à utiliser, puis cliquez sur le bouton Ouvrir.
Le script est ajouté à la grille Scripts de base de données.
Notes
Ce script est conçu pour utiliser les paramètres de sécurité par défaut dans Windows 7 et Windows Server 2008 R2.Si vous utilisez une version antérieure de Windows, ou si votre ordinateur est configuré avec des paramètres de sécurité personnalisés, ce script peut ne pas rendre votre base de données accessible aux informations d'identification que votre site Web utilise lorsqu'il s'exécute dans IIS.Pour plus d'informations sur la sécurité SQL Server, consultez Documentation en ligne de SQL Server.
Enregistrez les modifications apportées à l'onglet Package/Publication SQL.
Spécification du mode traité pour les scripts personnalisés
Dans la première procédure pas à pas de la série, vous avez modifié le fichier projet à spécifier que le script AdventureWorksGrant.sql doit exécuter dans une transaction. Cela a configuré le processus de déploiement afin que tous les scripts s'exécutent dans le même mode de transaction. Étant donné que vous avez créé des paramètres pour la configuration de build Release, vous devez apporter la même modification pour la configuration de build Release. Vous devez également apporter la même modification pour le nouveau script personnalisé que vous avez ajouté à cette procédure pas à pas (aspnet_SchemaVersions.sql).
Dans la procédure suivante, vous apporterez ces deux modifications au fichier projet.
Pour spécifier que les scripts personnalisés doivent s'exécuter dans une transaction
Ouvrez le fichier AdventureWorks.csproj ou AdventureWorks.vbproj dans un éditeur de texte, tel que le Bloc-notes.
Pour naviguer jusqu'au répertoire du projet, cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions, puis cliquez sur Ouvrir le dossier dans l'Explorateur Windows.
Recherchez l'élément PropertyGroup associé à la configuration de build Debug.
La balise d'ouverture de l'élément ressemble à l'exemple suivant :
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
Recherchez l'élément PublishDatabaseSettings dans l'élément PropertyGroup.
Dans l'élément PublishDatabaseSettings, recherchez l'élément ObjectGroup nommé ApplicationServices-Deployment.
Le deuxième élément Object dans cet élément ObjectGroup est pour le script aspnet_SchemaVersions.sql.
Dans l'élément Object qui est pour le script aspnet_SchemaVersions.sql, remplacez la valeur de l'attribut Transacted de l'élément Source par True.
Dans l'élément PublishDatabaseSettings, recherchez l'élément ObjectGroup nommé AWLTConnectionString-Deployment.
Le deuxième élément Object dans cet élément ObjectGroup est pour le script AdventureWorksGrant.sql.
Dans l'élément Object qui est pour le script AdventureWorksGrant.sql, remplacez la valeur de l'attribut Transacted de l'élément Source par True.
Enregistrez les modifications et fermez le fichier projet.
Lorsque Visual Studio vous invite à recharger le projet, cliquez sur le bouton Recharger.
Dans le menu Générer, cliquez sur Nettoyer AdventureWorks.
Configuration des transformations du fichier Web.config
Comme vous l'avez fait pour la configuration de build Debug dans la première procédure pas à pas de cette série, vous devez vous assurer que les chaînes de connexion du fichier Web.config déployé pointent sur la base de données appropriée. De plus, avant de procéder à un déploiement sur un serveur intermédiaire, vous souhaitez apporter les modifications suivantes dans le fichier Web.config déployé :
désactiver le débogage ;
augmenter la longueur minimale du mot de passe à 8 ;
définir une valeur machineKey afin que le site puisse s'exécuter dans un environnement de batterie de serveurs Web. La valeur machineKey est en général différente dans l'environnement intermédiaire et dans l'environnement de production. Par conséquent, pour utiliser le même package dans les deux environnements, vous devez vous assurer que vous pouvez configurer cette valeur au moment de l'installation.
Dans la procédure suivante, vous créez un fichier de transformation pour la configuration de build Release qui désactive le débogage et augmente la longueur du mot de passe.
Pour configurer des transformations pour le fichier Web.config déployé
Dans l'Explorateur de solutions, développez le nœud du fichier Web.config.
Ouvrez le fichier Web.Debug.config.
Copiez l'élément connectionStrings complet dans le Presse-papiers Windows.
Fermez Web.Debug.config.
Ouvrez le fichier Web.Release.config.
Remarquez que vous n'avez rien à faire pour désactiver le débogage. Le fichier Web.Release.config par défaut contient déjà les marques qui le font, comme indiqué dans l'exemple suivant :
<system.web> <compilation xdt:Transform="RemoveAttributes(debug)" /> ... </system.web>
Supprimez le bloc de commentaires qui contient un élément connectionStrings et collez le contenu du Presse-papiers à sa place.
Juste après l'élément compilation, ajoutez les marques suivantes :
<machineKey validationKey="staging" decryptionKey="staging" xdt:Transform="Insert" />
Enregistrez et fermez le fichier Web.Release.config.
Création d'un paramètre de déploiement
Dans la procédure suivante, vous créez un paramètre de déploiement que vous pouvez utiliser pour modifier la valeur machineKey lorsque vous installez le package sur le serveur de production.
Pour créer un paramètre de déploiement pour la valeur machineKey
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Ajouter un nouvel élément.
Dans le panneau Modèles installés, sélectionnez C# ou Visual Basic, puis sélectionnez le modèle Fichier XML.
Dans la zone Nom, entrez Parameters.xml, puis cliquez sur Ajouter.
Supprimez <?xml version="1.0 encoding="utf-8" ?>, puis ajoutez les marques suivantes :
<parameters> <parameter name="machineKey" description="Please provide the machineKey value." defaultValue="staging" tags=""> <parameterEntry kind="XmlFile" scope="obj\\Release\\Package\\PackageTmp\\Web\.config$" match="//machineKey[@validationKey]" /> <parameterEntry kind="XmlFile" scope="obj\\Release\\Package\\PackageTmp\\Web\.config$" match="//machineKey[@decryptionKey]" /> </parameter> </parameters>
Ces marques créent un paramètre nommé machineKey. Si vous utilisez le Gestionnaire des services IIS pour installer le package que vous créez, la valeur d'attribut description est affichée comme étiquette de la zone où vous pouvez entrer la valeur machineKey.
Les éléments parameterEntry spécifient où est utilisée la valeur de ce paramètre. L'attribut kind spécifie que la valeur sera insérée dans un fichier XML. L'attribut scope utilise une expression régulière pour spécifier le fichier XML à mettre à jour. (Le chemin d'accès reflète le chemin d'accès du fichier Web.config lorsque le package a été créé, pas le chemin d'accès sous la forme qu'il prendra dans l'application Web déployée.) L'attribut match utilise une expression XPath pour sélectionner les attributs à mettre à jour, lesquels sont les attributs validationKey et decryptionKey de l'élément machineKey.
Création du package
Dans la procédure suivante, vous créez un package qui peut être utilisé pour effectuer un déploiement sur un serveur intermédiaire et sur un serveur de production.
Pour créer un package
Dans le menu Projet, cliquez sur Générer un package de déploiement.
Visual Studio génère le projet et crée ensuite le package de déploiement en affichant un enregistrement dans la fenêtre Sortie. Dans la dernière procédure pas à pas de cette série, vous installez ce package sur un serveur distant.
Étapes suivantes
Dans les deux premières procédures pas à pas de cette série, vous avez déployé un projet d'application Web de système de fichiers sur une application Web IIS afin de le tester sur l'ordinateur de développement. Dans cette procédure pas à pas, vous avez créé un package que vous pouvez déployer sur un ordinateur distant à l'aide du fichier deploy.cmd que Visual Studio génère lorsqu'il crée le package.
La prochaine et dernière procédure pas à pas de la série est Procédure pas à pas : déploiement d'un projet d'application Web à l'aide d'un package de déploiement Web (partie 4 sur 4). Dans cette procédure pas à pas, vous déploierez réellement le package.
Voir aussi
Concepts
Organigramme des informations relatives au déploiement ASP.NET