Filtres d’actions personnalisés d’ASP.NET MVC 4
Par web Camps Team
Télécharger le Kit de formation Web Camps
ASP.NET MVC fournit des filtres d’action pour l’exécution d’une logique de filtrage avant ou après l’appel d’une méthode d’action. Les filtres d’action sont des attributs personnalisés qui fournissent des moyens déclaratifs d’ajouter un comportement de pré-action et de post-action aux méthodes d’action du contrôleur.
Dans ce laboratoire pratique, vous allez créer un attribut de filtre d’action personnalisé dans la solution MvcMusicStore pour intercepter les requêtes du contrôleur et consigner l’activité d’un site dans une table de base de données. Vous pourrez ajouter votre filtre de journalisation par injection à n’importe quel contrôleur ou action. Enfin, vous verrez l’affichage du journal qui affiche la liste des visiteurs.
Ce laboratoire pratique suppose que vous avez des connaissances de base sur ASP.NET MVC. Si vous n’avez pas déjà utilisé ASP.NET MVC, nous vous recommandons de passer en charge ASP.NET laboratoire pratique MVC 4.
Remarque
Tous les exemples de code et d’extraits de code sont inclus dans le Kit de formation Web Camps, disponible à partir de Microsoft-Web/WebCampTrainingKit Releases. Le projet spécifique à ce labo est disponible à ASP.NET filtres d’actions personnalisées MVC 4.
Objectifs
Dans ce laboratoire pratique, vous allez apprendre à :
- Créer un attribut de filtre d’action personnalisé pour étendre les fonctionnalités de filtrage
- Appliquer un attribut de filtre personnalisé par injection à un niveau spécifique
- Inscrire un filtre d’action personnalisé globalement
Prérequis
Vous devez disposer des éléments suivants pour effectuer ce labo :
- Microsoft Visual Studio Express 2012 pour le web ou supérieur (lisez l’annexe A pour obtenir des instructions sur la façon de l’installer).
Programme d’installation
Installation d’extraits de code
Pour plus de commodité, une grande partie du code que vous allez gérer le long de ce labo est disponible en tant qu’extraits de code Visual Studio. Pour installer les extraits de code, exécutez le fichier .\Source\Setup\CodeSnippets.vsi .
Si vous n’êtes pas familiarisé avec les extraits de code Visual Studio Code et que vous souhaitez apprendre à les utiliser, vous pouvez consulter l’annexe de ce document « Annexe C : Utilisation d’extraits de code ».
Exercices
Ce laboratoire pratique est composé des exercices suivants :
Durée estimée pour terminer ce labo : 30 minutes.
Remarque
Chaque exercice est accompagné d’un dossier End contenant la solution résultante que vous devez obtenir après avoir effectué les exercices. Vous pouvez utiliser cette solution comme guide si vous avez besoin d’aide supplémentaire pour travailler dans les exercices.
Exercice 1 : Actions de journalisation
Dans cet exercice, vous allez apprendre à créer un filtre de journal d’actions personnalisé à l’aide de ASP.NET fournisseurs de filtre MVC 4. À cet effet, vous allez appliquer un filtre de journalisation au site MusicStore qui enregistre toutes les activités dans les contrôleurs sélectionnés.
Le filtre étend ActionFilterAttributeClass et remplace la méthode OnActionExecuting pour intercepter chaque requête, puis effectuer les actions de journalisation. Les informations de contexte sur les requêtes HTTP, l’exécution de méthodes, les résultats et les paramètres seront fournies par ASP.NET classe ActionExecutingContext MVC.
Remarque
ASP.NET MVC 4 dispose également de fournisseurs de filtres par défaut que vous pouvez utiliser sans créer de filtre personnalisé. ASP.NET MVC 4 fournit les types de filtres suivants :
- Filtre d’autorisation , qui prend des décisions de sécurité sur l’exécution d’une méthode d’action, comme l’exécution de l’authentification ou la validation des propriétés de la requête.
- Filtre d’action , qui encapsule l’exécution de la méthode d’action. Ce filtre peut effectuer un traitement supplémentaire, par exemple fournir des données supplémentaires à la méthode d’action, inspecter la valeur de retour ou annuler l’exécution de la méthode d’action
- Filtre de résultats , qui encapsule l’exécution de l’objet ActionResult. Ce filtre peut effectuer un traitement supplémentaire du résultat, tel que la modification de la réponse HTTP.
- Filtre d’exception, qui s’exécute s’il existe une exception non gérée levée quelque part dans la méthode d’action, en commençant par les filtres d’autorisation et se terminant par l’exécution du résultat. Les filtres d’exceptions peuvent être utilisés pour les tâches telles que la journalisation ou l’affichage d’une page d’erreur.
Pour plus d’informations sur les fournisseurs de filtres, consultez ce lien MSDN : (https://msdn.microsoft.com/library/dd410209.aspx) .
À propos de la fonctionnalité de journalisation des applications du Magasin de musique MVC
Cette solution Music Store a une nouvelle table de modèle de données pour la journalisation de site, ActionLog, avec les champs suivants : Nom du contrôleur qui a reçu une demande, Action Appelée, Adresse IP du client et horodatage.
Modèle de données - Table ActionLog
La solution fournit une vue ASP.NET MVC pour le journal des actions qui se trouve sur MvcMusicStores/Views/ActionLog :
Vue journal des actions
Avec cette structure donnée, tout le travail sera axé sur l’interruption de la requête du contrôleur et l’exécution de la journalisation à l’aide du filtrage personnalisé.
Tâche 1 : création d’un filtre personnalisé pour intercepter la requête d’un contrôleur
Dans cette tâche, vous allez créer une classe d’attribut de filtre personnalisée qui contiendra la logique de journalisation. À cet effet, vous allez étendre ASP.NET classe ActionFilterAttribute MVC et implémenter l’interface IActionFilter.
Remarque
ActionFilterAttribute est la classe de base pour tous les filtres d’attributs. Il fournit les méthodes suivantes pour exécuter une logique spécifique après et avant l’exécution de l’action du contrôleur :
- OnActionExecuting(ActionExecutingContext filterContext) : juste avant l’appel de la méthode d’action.
- OnActionExecuted(ActionExecutedContext filterContext) : une fois la méthode d’action appelée et avant l’exécution du résultat (avant le rendu de la vue).
- OnResult Execute(Result ExecuteContext filterContext) : juste avant l’exécution du résultat (avant le rendu de la vue).
- OnResultExecuted(ResultExecutedContext filterContext) : une fois le résultat exécuté (après le rendu de l’affichage).
En remplaçant l’une de ces méthodes dans une classe dérivée, vous pouvez exécuter votre propre code de filtrage.
Ouvrez la solution Begin située dans le dossier \Source\Ex01-LoggingActions\Begin.
Vous devrez télécharger des packages NuGet manquants avant de continuer. Pour ce faire, cliquez sur le menu Projet et sélectionnez Gérer les packages NuGet.
Dans la boîte de dialogue Gérer les packages NuGet, cliquez sur Restaurer pour télécharger les packages manquants.
Enfin, générez la solution en cliquant sur Générer | la solution.
Remarque
L’un des avantages de l’utilisation de NuGet est que vous n’avez pas à expédier toutes les bibliothèques dans votre projet, ce qui réduit la taille du projet. Avec NuGet Power Tools, en spécifiant les versions du package dans le fichier Packages.config, vous pourrez télécharger toutes les bibliothèques requises la première fois que vous exécutez le projet. C’est pourquoi vous devrez exécuter ces étapes après avoir ouvert une solution existante à partir de ce labo.
Pour plus d’informations, consultez cet article : https://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages.
Ajoutez une nouvelle classe C# dans le dossier Filters et nommez-la CustomActionFilter.cs. Ce dossier stocke tous les filtres personnalisés.
Ouvrez CustomActionFilter.cs et ajoutez une référence aux espaces de noms System.Web.Mvc et MvcMusicStore.Models :
(Extrait de code - ASP.NET filtres d’actions personnalisées MVC 4 - Ex1-CustomActionFilterNamespaces)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcMusicStore.Models;
Héritez de la classe CustomActionFilter d’ActionFilterAttribute, puis faites en sorte que la classe CustomActionFilter implémente l’interface IActionFilter.
//... namespace MvcMusicStore.Filters { public class CustomActionFilter : ActionFilterAttribute, IActionFilter { //... } }
La classe CustomActionFilter remplace la méthode OnAction Execution et ajoute la logique nécessaire pour journaliser l’exécution du filtre. Pour ce faire, ajoutez le code en surbrillance suivant dans la classe CustomActionFilter .
(Extrait de code - ASP.NET filtres d’actions personnalisées MVC 4 - Ex1-LoggingActions)
public class CustomActionFilter : ActionFilterAttribute, IActionFilter { void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext) { // TODO: Add your action filter's tasks here // Log Action Filter call using (MusicStoreEntities storeDb = new MusicStoreEntities()) { ActionLog log = new ActionLog() { Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, Action = string.Concat(filterContext.ActionDescriptor.ActionName, " (Logged By: Custom Action Filter)"), IP = filterContext.HttpContext.Request.UserHostAddress, DateTime = filterContext.HttpContext.Timestamp }; storeDb.ActionLogs.Add(log); storeDb.SaveChanges(); OnActionExecuting(filterContext); } } }
Remarque
La méthode OnActionExecuting utilise Entity Framework pour ajouter un nouveau registre ActionLog. Il crée et remplit une nouvelle instance d’entité avec les informations de contexte de filterContext.
Vous pouvez en savoir plus sur la classe ControllerContext sur msdn.
Tâche 2 : injection d’un intercepteur de code dans la classe du contrôleur de magasin
Dans cette tâche, vous allez ajouter le filtre personnalisé en l’injectant dans toutes les classes de contrôleur et actions de contrôleur qui seront journalisées. Dans le cadre de cet exercice, la classe Store Controller aura un journal.
La méthode OnActionExecuting à partir du filtre personnalisé ActionLogFilterAttribute s’exécute lorsqu’un élément injecté est appelé.
Il est également possible d’intercepter une méthode de contrôleur spécifique.
Ouvrez StoreController sur MvcMusicStore\Controllers et ajoutez une référence à l’espace de noms Filters :
using System.Linq; using System.Web.Mvc; using MvcMusicStore.Models; using MvcMusicStore.Filters;
Injectez le filtre personnalisé CustomActionFilter dans la classe StoreController en ajoutant l’attribut [CustomActionFilter] avant la déclaration de classe.
... [CustomActionFilter] public class StoreController : Controller { ... }
Remarque
Lorsqu’un filtre est injecté dans une classe de contrôleur, toutes ses actions sont également injectées. Si vous souhaitez appliquer le filtre uniquement pour un ensemble d’actions, vous devez injecter [CustomActionFilter] à chacun d’entre eux :
[CustomActionFilter] public ActionResult Index() { ... } [CustomActionFilter] public ActionResult Browse(string genre) { ... }
Tâche 3 : exécution de l’application
Dans cette tâche, vous allez tester que le filtre de journalisation fonctionne. Vous allez démarrer l’application et visiter le magasin, puis vérifier les activités journalisées.
Appuyez sur F5 pour exécuter l'application.
Accédez à /ActionLog pour afficher l’état initial de l’affichage du journal :
État du suivi des journaux avant l’activité de la page
Remarque
Par défaut, il affiche toujours un élément généré lors de la récupération des genres existants pour le menu.
À des fins de simplicité, nous nettoyerons la table ActionLog chaque fois que l’application s’exécute afin qu’elle affiche uniquement les journaux de la vérification de chaque tâche particulière.
Vous devrez peut-être supprimer le code suivant de la méthode Session_Start (dans la classe Global.asax ), afin d’enregistrer un journal historique pour toutes les actions exécutées dans le contrôleur store.
// Clean up Logs Table MusicStoreEntities storeDB = new MusicStoreEntities(); foreach (var log in storeDB.ActionLogs.ToList()) { storeDB.ActionLogs.Remove(log); } storeDB.SaveChanges();
Cliquez sur l’un des genres dans le menu et effectuez certaines actions, comme parcourir un album disponible.
Accédez à /ActionLog et, si le journal est vide, appuyez sur F5 pour actualiser la page. Vérifiez que vos visites ont été suivies :
Journal des actions avec activité journalisée
Exercice 2 : Gestion de plusieurs filtres d’action
Dans cet exercice, vous allez ajouter un deuxième filtre d’action personnalisée à la classe StoreController et définir l’ordre spécifique dans lequel les deux filtres seront exécutés. Ensuite, vous allez mettre à jour le code pour inscrire le filtre globalement.
Il existe différentes options à prendre en compte lors de la définition de l’ordre d’exécution des filtres. Par exemple, la propriété Order et l’étendue des filtres :
Vous pouvez définir une étendue pour chacun des filtres, par exemple, vous pouvez étendre tous les filtres d’action à exécuter dans l’étendue du contrôleur et tous les filtres d’autorisation à exécuter dans l’étendue globale. Les étendues ont un ordre d’exécution défini.
En outre, chaque filtre d’action a une propriété Order qui est utilisée pour déterminer l’ordre d’exécution dans l’étendue du filtre.
Pour plus d’informations sur l’ordre d’exécution des filtres d’actions personnalisées, consultez cet article MSDN : (https://msdn.microsoft.com/library/dd381609(v=vs.98).aspx).
Tâche 1 : Création d’un filtre d’action personnalisé
Dans cette tâche, vous allez créer un filtre d’action personnalisé à injecter dans la classe StoreController, en apprenant à gérer l’ordre d’exécution des filtres.
Ouvrez la solution Begin située dans le dossier \Source\Ex02-ManagingMultipleActionFilters\Begin. Sinon, vous pouvez continuer à utiliser la solution De fin obtenue en effectuant l’exercice précédent.
Si vous avez ouvert la solution Begin fournie, vous devez télécharger des packages NuGet manquants avant de continuer. Pour ce faire, cliquez sur le menu Projet et sélectionnez Gérer les packages NuGet.
Dans la boîte de dialogue Gérer les packages NuGet, cliquez sur Restaurer pour télécharger les packages manquants.
Enfin, générez la solution en cliquant sur Générer | la solution.
Remarque
L’un des avantages de l’utilisation de NuGet est que vous n’avez pas à expédier toutes les bibliothèques dans votre projet, ce qui réduit la taille du projet. Avec NuGet Power Tools, en spécifiant les versions du package dans le fichier Packages.config, vous pourrez télécharger toutes les bibliothèques requises la première fois que vous exécutez le projet. C’est pourquoi vous devrez exécuter ces étapes après avoir ouvert une solution existante à partir de ce labo.
Pour plus d’informations, consultez cet article : https://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages.
Ajoutez une nouvelle classe C# dans le dossier Filters et nommez-la MyNewCustomActionFilter.cs
Ouvrez MyNewCustomActionFilter.cs et ajoutez une référence à System.Web.Mvc et à l’espace de noms MvcMusicStore.Models :
(Extrait de code - ASP.NET filtres d’action personnalisés MVC 4 - Ex2-MyNewCustomActionFilterNamespaces)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcMusicStore.Models;
Remplacez la déclaration de classe par défaut par le code suivant.
(Extrait de code - ASP.NET filtres d’actions personnalisées MVC 4 - Ex2-MyNewCustomActionFilterClass)
public class MyNewCustomActionFilter : ActionFilterAttribute, IActionFilter { void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext) { // TODO: Add your acction filter's tasks here // Log Action Filter Call MusicStoreEntities storeDB = new MusicStoreEntities(); ActionLog log = new ActionLog() { Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, Action = filterContext.ActionDescriptor.ActionName + " (Logged By: MyNewCustomActionFilter)", IP = filterContext.HttpContext.Request.UserHostAddress, DateTime = filterContext.HttpContext.Timestamp }; storeDB.ActionLogs.Add(log); storeDB.SaveChanges(); this.OnActionExecuting(filterContext); } }
Remarque
Ce filtre d’action personnalisée est presque le même que celui que vous avez créé dans l’exercice précédent. La principale différence est qu’il a l’attribut « Journalisé par » mis à jour avec le nom de cette nouvelle classe pour identifier le filtre qui a inscrit le journal.
Tâche 2 : Injection d’un nouvel intercepteur de code dans la classe StoreController
Dans cette tâche, vous allez ajouter un nouveau filtre personnalisé dans la classe StoreController et exécuter la solution pour vérifier comment les deux filtres fonctionnent ensemble.
Ouvrez la classe StoreController située sur MvcMusicStore\Controllers et injectez le nouveau filtre personnalisé MyNewCustomActionFilter dans la classe StoreController , comme illustré dans le code suivant.
[MyNewCustomActionFilter] [CustomActionFilter] public class StoreController : Controller { ... }
À présent, exécutez l’application pour voir comment fonctionnent ces deux filtres d’action personnalisés. Pour ce faire, appuyez sur F5 et attendez que l’application démarre.
Accédez à /ActionLog pour afficher l’état initial de l’affichage du journal.
État du suivi des journaux avant l’activité de la page
Cliquez sur l’un des genres dans le menu et effectuez certaines actions, comme parcourir un album disponible.
Vérifiez que cette fois ; vos visites ont été suivies deux fois : une fois pour chacun des filtres d’actions personnalisés que vous avez ajoutés dans la classe StorageController .
Journal des actions avec activité journalisée
Fermez le navigateur.
Tâche 3 : Gestion de l’ordre des filtres
Dans cette tâche, vous allez apprendre à gérer l’ordre d’exécution des filtres à l’aide de la propriété Order.
Ouvrez la classe StoreController située sur MvcMusicStore\Controllers et spécifiez la propriété Order dans les deux filtres comme indiqué ci-dessous.
[MyNewCustomActionFilter(Order = 2)] [CustomActionFilter(Order = 1)] public class StoreController : Controller { ... }
À présent, vérifiez comment les filtres sont exécutés en fonction de la valeur de sa propriété Order. Vous constaterez que le filtre avec la plus petite valeur Order (CustomActionFilter) est le premier qui est exécuté. Appuyez sur F5 et attendez que l’application démarre.
Accédez à /ActionLog pour afficher l’état initial de l’affichage du journal.
État du suivi des journaux avant l’activité de la page
Cliquez sur l’un des genres dans le menu et effectuez certaines actions, comme parcourir un album disponible.
Vérifiez que cette fois, vos visites ont été suivies par la valeur Order des filtres : Les journaux CustomActionFilter ont d’abord été suivis.
Journal des actions avec activité journalisée
À présent, vous allez mettre à jour la valeur de commande des filtres et vérifier la façon dont l’ordre de journalisation change. Dans la classe StoreController , mettez à jour la valeur Order des filtres comme indiqué ci-dessous.
[MyNewCustomActionFilter(Order = 1)] [CustomActionFilter(Order = 2)] public class StoreController : Controller { ... }
Réexécutez l’application en appuyant sur F5.
Cliquez sur l’un des genres dans le menu et effectuez certaines actions, comme parcourir un album disponible.
Vérifiez que cette fois, les journaux créés par le filtre MyNewCustomActionFilter s’affichent en premier.
Journal des actions avec activité journalisée
Tâche 4 : Inscription de filtres globalement
Dans cette tâche, vous allez mettre à jour la solution pour inscrire le nouveau filtre (MyNewCustomActionFilter) en tant que filtre global. En procédant ainsi, elle sera déclenchée par toutes les actions effectuées dans l’application et non seulement dans les actions StoreController comme dans la tâche précédente.
Dans la classe StoreController , supprimez l’attribut [MyNewCustomActionFilter] et la propriété order de [CustomActionFilter]. Il doit se présenter comme suit :
[CustomActionFilter] public class StoreController : Controller { ... }
Ouvrez le fichier Global.asax et recherchez la méthode Application_Start . Notez que chaque fois que l’application démarre, elle inscrit les filtres globaux en appelant la méthode RegisterGlobalFilters dans la classe FilterConfig .
Inscription de filtres globaux dans Global.asax
Ouvrez FilterConfig.cs fichier dans App_Start dossier.
Ajoutez une référence à l’utilisation de System.Web.Mvc ; à l’aide de MvcMusicStore.Filters ; Namespace.
using System.Web.Mvc; using MvcMusicStore.Filters;
Mettez à jour la méthode RegisterGlobalFilters en ajoutant votre filtre personnalisé. Pour ce faire, ajoutez le code mis en surbrillance :
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new MyNewCustomActionFilter()); }
Exécutez l’application en appuyant sur F5.
Cliquez sur l’un des genres dans le menu et effectuez certaines actions, comme parcourir un album disponible.
Vérifiez que maintenant [MyNewCustomActionFilter] est injecté dans HomeController et ActionLogController également.
Journal des actions avec activité globale journalisée
Remarque
En outre, vous pouvez déployer cette application sur les sites web Windows Azure en suivant l’annexe B : publication d’une application ASP.NET MVC 4 à l’aide du déploiement web.
Résumé
En effectuant ce laboratoire pratique, vous avez appris à étendre un filtre d’action pour exécuter des actions personnalisées. Vous avez également appris à injecter n’importe quel filtre dans vos contrôleurs de page. Les concepts suivants ont été utilisés :
- Comment créer des filtres d’action personnalisée avec la classe ASP.NET ActionFilterAttribute MVC
- Comment injecter des filtres dans des contrôleurs MVC ASP.NET
- Comment gérer l’ordre des filtres à l’aide de la propriété Order
- Comment inscrire des filtres globalement
Annexe A : Installation de Visual Studio Express 2012 pour le web
Vous pouvez installer Microsoft Visual Studio Express 2012 pour Web ou une autre version « Express » à l’aide de Microsoft Web Platform Installer. Les instructions suivantes vous guident tout au long des étapes requises pour installer Visual Studio Express 2012 pour Web à l’aide de Microsoft Web Platform Installer.
Accédez à /iis/extensions/introduction-to-iis-express/iis-express-overview ?linkid=9810169. Sinon, si vous avez déjà installé Web Platform Installer, vous pouvez l’ouvrir et rechercher le produit « Visual Studio Express 2012 for Web with Windows Azure SDK ».
Cliquez sur Installer maintenant. Si vous n’avez pas web Platform Installer , vous êtes redirigé pour le télécharger et l’installer en premier.
Une fois web Platform Installer ouvert, cliquez sur Installer pour démarrer l’installation.
Installer Visual Studio Express
Lisez toutes les licences et conditions de tous les produits, puis cliquez sur J’accepte pour continuer.
Acceptation des termes du contrat de licence
Attendez que le processus de téléchargement et d’installation soit terminé.
Progression de l’installation
Une fois l’installation terminée, cliquez sur Terminer.
Installation terminée
Cliquez sur Quitter pour fermer Web Platform Installer.
Pour ouvrir Visual Studio Express pour le web, accédez à l’écran d’accueil et commencez à écrire « VS Express », puis cliquez sur la vignette VS Express pour Web.
Vignette VS Express pour web
Annexe B : Publication d’une application MVC 4 ASP.NET à l’aide du déploiement web
Cette annexe vous montre comment créer un site web à partir du portail de gestion Windows Azure et publier l’application que vous avez obtenue en suivant le labo, en tirant parti de la fonctionnalité de publication Web Deploy fournie par Windows Azure.
Tâche 1 : création d’un site web à partir du portail Windows Azure
Accédez au portail de gestion Windows Azure et connectez-vous à l’aide des informations d’identification Microsoft associées à votre abonnement.
Remarque
Avec Windows Azure, vous pouvez héberger gratuitement 10 sites web ASP.NET, puis effectuer une mise à l’échelle à mesure que votre trafic augmente. Vous pouvez vous inscrire ici.
Se connecter au portail de gestion Windows Azure
Cliquez sur Nouveau dans la barre de commandes.
Création d’un site web
Cliquez sur Site web de calcul | . Sélectionnez ensuite l’option Création rapide. Fournissez une URL disponible pour le nouveau site web, puis cliquez sur Créer un site web.
Remarque
Un site web Windows Azure est l’hôte d’une application web s’exécutant dans le cloud que vous pouvez contrôler et gérer. L’option Création rapide vous permet de déployer une application web terminée sur le site web Windows Azure à partir de l’extérieur du portail. Il n’inclut pas les étapes de configuration d’une base de données.
Création d’un site web à l’aide de la création rapide
Attendez que le nouveau site web soit créé.
Une fois le site web créé, cliquez sur le lien sous la colonne URL . Vérifiez que le nouveau site web fonctionne.
Navigation vers le nouveau site web
Site web en cours d’exécution
Revenez au portail et cliquez sur le nom du site web sous la colonne Nom pour afficher les pages de gestion.
Ouverture des pages de gestion des sites web
Dans la page Tableau de bord , sous la section Aperçu rapide, cliquez sur le lien Télécharger le profil de publication.
Remarque
Le profil de publication contient toutes les informations requises pour publier une application web sur un site web Windows Azure pour chaque méthode de publication activée. Le profil de publication contient les URL, les informations d’identification de l’utilisateur et les chaînes de base de données requises pour se connecter à chacun des points de terminaison pour lesquels une méthode de publication est activée. Microsoft WebMatrix 2, Microsoft Visual Studio Express pour le web et Microsoft Visual Studio 2012 prennent en charge la lecture des profils de publication pour automatiser la configuration de ces programmes pour publier des applications web sur des sites web Windows Azure.
Téléchargement du profil de publication du site web
Téléchargez le fichier de profil de publication à un emplacement connu. Dans cet exercice, vous allez voir comment utiliser ce fichier pour publier une application web sur un site Web Windows Azure à partir de Visual Studio.
Enregistrement du fichier de profil de publication
Tâche 2 : configuration du serveur de base de données
Si votre application utilise des bases de données SQL Server, vous devez créer un serveur SQL Database. Si vous souhaitez déployer une application simple qui n’utilise pas SQL Server, vous pouvez ignorer cette tâche.
Vous aurez besoin d’un serveur SQL Database pour stocker la base de données d’application. Vous pouvez afficher les serveurs SQL Database à partir de votre abonnement dans le portail de gestion Windows Azure dans le tableau de bord des serveurs sql Databases | Server. | Si vous n’avez pas de serveur créé, vous pouvez en créer un à l’aide du bouton Ajouter dans la barre de commandes. Notez le nom et l’URL du serveur, le nom de connexion administrateur et le mot de passe, car vous les utiliserez dans les tâches suivantes. Ne créez pas encore la base de données, car elle sera créée dans une phase ultérieure.
Tableau de bord sql Database Server
Dans la tâche suivante, vous allez tester la connexion de base de données à partir de Visual Studio, pour cette raison, vous devez inclure votre adresse IP locale dans la liste des adresses IP autorisées du serveur. Pour ce faire, cliquez sur Configurer, sélectionnez l’adresse IP à partir de l’adresse IP du client actuel et collez-la dans les zones de texte Adresse IP de début et adresse IP de fin, puis cliquez sur le bouton.
Ajout de l’adresse IP du client
Une fois l’adresse IP du client ajoutée à la liste des adresses IP autorisées, cliquez sur Enregistrer pour confirmer les modifications.
Confirmer les modifications
Tâche 3 : publication d’une application ASP.NET MVC 4 à l’aide du déploiement web
Revenez à la solution ASP.NET MVC 4. Dans le Explorateur de solutions, cliquez avec le bouton droit sur le projet de site web, puis sélectionnez Publier.
Publication du site web
Importez le profil de publication que vous avez enregistré dans la première tâche.
Importation du profil de publication
Cliquez sur Valider la connexion. Une fois la validation terminée, cliquez sur Suivant.
Remarque
La validation est terminée une fois qu’une coche verte s’affiche en regard du bouton Valider la connexion.
Validation de la connexion
Dans la page Paramètres , sous la section Bases de données , cliquez sur le bouton en regard de la zone de texte de votre connexion de base de données (par exemple, DefaultConnection).
Configuration du déploiement web
Configurez la connexion de base de données comme suit :
Dans le nom du serveur, tapez votre URL de serveur SQL Database à l’aide du préfixe tcp : .
Dans Le nom d’utilisateur, tapez le nom de connexion de votre administrateur de serveur.
Dans Mot de passe, tapez le mot de passe de connexion de votre administrateur de serveur.
Tapez un nouveau nom de base de données.
Configuration des chaîne de connexion de destination
Cliquez ensuite sur OK. Lorsque vous êtes invité à créer la base de données, cliquez sur Oui.
Création de la base de données
Le chaîne de connexion que vous utiliserez pour vous connecter à SQL Database dans Windows Azure s’affiche dans la zone de texte Connexion par défaut. Cliquez ensuite sur Suivant.
Chaîne de connexion pointant vers SQL Database
Dans la page Aperçu , cliquez sur Publier.
Publication de l’application web
Une fois le processus de publication terminé, votre navigateur par défaut ouvre le site web publié.
Annexe C : Utilisation d’extraits de code
Avec les extraits de code, vous avez tout le code dont vous avez besoin à portée de main. Le document lab vous indique exactement quand vous pouvez les utiliser, comme illustré dans la figure suivante.
Utilisation des extraits de code Visual Studio pour insérer du code dans votre projet
Pour ajouter un extrait de code à l’aide du clavier (C# uniquement)
- Placez le curseur dans lequel vous souhaitez insérer le code.
- Commencez à taper le nom de l’extrait de code (sans espaces ou traits d’union).
- Regardez comme IntelliSense affiche les noms des extraits de code correspondants.
- Sélectionnez l’extrait de code correct (ou continuez à taper jusqu’à ce que le nom de l’extrait de code entier soit sélectionné).
- Appuyez deux fois sur tabulation pour insérer l’extrait de code à l’emplacement du curseur.
Commencez à taper le nom de l’extrait de code
Appuyez sur Tab pour sélectionner l’extrait de code mis en surbrillance
Appuyez de nouveau sur Tab et l’extrait de code se développe
Pour ajouter un extrait de code à l’aide de la souris (C#, Visual Basic et XML) 1. Cliquez avec le bouton droit sur l’emplacement où vous souhaitez insérer l’extrait de code.
- Sélectionnez Insérer un extrait de code suivi de mes extraits de code.
- Sélectionnez l’extrait de code approprié dans la liste en cliquant dessus.
Cliquez avec le bouton droit sur l’emplacement où vous souhaitez insérer l’extrait de code, puis sélectionnez Insérer un extrait de code
Sélectionnez l’extrait de code approprié dans la liste, en cliquant dessus