Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure App Service offre un service d’hébergement web hautement évolutif appliquant des mises à jour correctives automatiques. Ce tutoriel montre comment déployer une application ASP.NET basée sur des données dans App Service et comment la connecter à Azure SQL Database.
Une fois le didacticiel terminé, vous disposez d’une application ASP.NET connectée à une base de données Azure SQL s’exécutant dans Azure. L’exemple suivant montre l’interface de l’application.
Dans ce tutoriel, vous allez :
- Publiez une application web pilotée par les données sur Azure.
- Créez une base de données Azure SQL pour contenir les données de l’application.
- Connectez l’application ASP.NET à la base de données Azure SQL.
- Configurez une identité managée et l’authentification Microsoft Entra ID pour la connexion de base de données.
- Mettez à jour le modèle de données et redéployez l’application.
- Transférez en continu les journaux d'application d'Azure vers Visual Studio.
Prérequis
- Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
- Installez Visual Studio 2022 avec les charges de travail Développement web et ASP.NET et Développement Azure.
- Vous pouvez ajouter les charges de travail à une installation existante de Visual Studio en sélectionnant Obtenir des outils et des fonctionnalités dans le menu Visual Studio Tools .
- Vérifiez que vous disposez des dernières mises à jour de Visual Studio 2022 en sélectionnant Aide>Pour rechercher les mises à jour et installer la dernière version si nécessaire.
Créer et exécuter l’application
L’exemple de projet contient une application CRUD (Create-read-update-delete) MVC de ASP.NET base qui utilise Entity Framework Code First.
Téléchargez l’exemple de projet et extrayez le fichier dotnet-sqldb-tutorial-master.zip .
Ouvrez le fichier dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln extrait dans Visual Studio.
Appuyez sur F5 pour exécuter l’application et l’ouvrir dans votre navigateur par défaut.
Remarque
Si nécessaire, installez les packages NuGet manquants.
Dans l’application, sélectionnez Créer nouveau et créez quelques éléments to-do .
Testez les liens Edit, Details et Delete.
Publier l’application sur Azure
Pour publier l’application sur Azure, vous créez et configurez un profil de publication doté d’un plan Azure App Service et App Service pour héberger l’application. Vous créez ensuite une base de données Azure SQL Server et Azure SQL pour contenir les données de l’application, puis configurez un contexte de base de données pour connecter l’application à la base de données.
Dans l’Explorateur de solutions Visual Studio, cliquez avec le bouton droit sur le projet DotNetAppSqlDb , puis sélectionnez Publier.
Dans l’écran Publier , sélectionnez Azure comme cible, puis sélectionnez Suivant.
Dans l’écran suivant, vérifiez qu’Azure App Service (Windows) est sélectionné et sélectionnez Suivant.
Connectez-vous et ajoutez un service Azure App Service
Dans l’écran De publication suivant, connectez-vous à votre compte Microsoft et à l’abonnement que vous souhaitez utiliser.
À côté de App Service, sélectionnez Créer un nouveau.
Configurer le Service App Azure
Dans l’écran App Service (Windows), configurez le nom App Service, le groupe de ressources et le plan d’hébergement.
Sous Nom, vous pouvez conserver le nom de l’application web générée ou le remplacer par un autre nom avec des caractères
a-z,0-9et-. Le nom de l’application web doit être unique dans toutes les applications Azure.En regard du groupe de ressources, sélectionnez Nouveau et nommez le groupe de ressources myResourceGroup.
Un groupe de ressources est un conteneur logique dans lequel les ressources Azure, comme les applications web, les bases de données et les comptes de stockage, sont déployées et managées. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.
En regard de Plan d’hébergement, sélectionnez Nouveau.
Un plan App Service spécifie l’emplacement, la taille et les fonctionnalités de la batterie de serveurs web qui héberge votre application. Vous pouvez économiser de l’argent quand vous hébergez plusieurs applications en configurant les applications web pour partager un plan App Service.
Les plans App Service définissent :
- Région (par exemple : Europe Nord, USA Est ou Asie Sud-Est)
- Taille d’instance (petit, moyen ou grand)
- Étendue de la mise à l’échelle (1 à 20 instances)
- Référence (SKU) (Gratuit, Partagé, De base, Standard ou Premium)
Terminez l’écran Plan d’hébergement , puis sélectionnez OK.
Paramètre Valeur suggérée Informations supplémentaires Plan App Service myAppServicePlan Plans App Service Lieu USA Est Régions Azure Taille Gratuit Niveaux de tarification
Dans l’écran App Service (Windows), sélectionnez Créer, puis attendez que les ressources Azure soient créées.
L’écran Publier affiche les ressources que vous avez configurées. Sélectionnez Terminer, puis Fermer.
Créer un serveur et une base de données
Avant de pouvoir créer une base de données, vous avez besoin d’un serveur SQL logique. Un serveur SQL logique est une construction logique qui contient un groupe de bases de données gérées en tant que groupe.
Dans l’écran Publier de l’application DotNetAppSqlDb , dans la section Dépendances de service , sélectionnez les points de suspension ... en regard de la base de données SQL Server, puis sélectionnez Se connecter.
Remarque
Veillez à configurer la base de données SQL à partir de l’onglet Publier , et non l’onglet Services connectés .
Dans l’écran Se connecter à la dépendance , sélectionnez Azure SQL Database , puis sélectionnez Suivant.
Dans l’écran Configurer Azure SQL Database , sélectionnez Créer nouveau.
Dans l’écran Azure SQL Database, en regard du serveur de base de données, sélectionnez Nouveau.
Remplacez le nom du serveur par une valeur de votre choix. Le nom du serveur doit être unique sur tous les serveurs dans Azure SQL.
Cliquez sur OK.
Dans l’écran Azure SQL Database , conservez le nom de base de données généré par défaut. Sélectionnez Créer et attendez que la ressource de base de données soit créée.
Lorsque les ressources de base de données sont créées, sélectionnez Suivant.
Dans l’écran Se connecter à Azure SQL Database , sélectionnez Terminer.
Capture d’écran avec un message sur la configuration de l’identité managée pour que la connexion fonctionne.
Remarque
Si vous voyez plutôt des fichiers de secrets utilisateur locaux , vérifiez que vous avez utilisé la page Publier , et non la page Services connectés , pour configurer SQL Database.
Votre connexion Azure SQL Database est maintenant configurée pour utiliser l’identité managée pour les services Azure, une méthode sécurisée de connexion de votre application à vos ressources Azure qui n’utilisent pas de secrets ou de mots de passe. Vous devez maintenant définir les autorisations appropriées sur l’utilisateur SQL correspondant à cette identité managée pour que la connexion fonctionne.
Configurer une identité managée
Lorsque l'assistant de création d'Azure SQL Database a configuré le serveur Azure SQL avec une identité managée et l'authentification Entra ID par défaut, il a ajouté votre compte Entra ID en tant qu'administrateur Azure SQL. Si vous êtes connecté au même compte dans Visual Studio, vous pouvez utiliser la même chaîne de connexion pour vous connecter à la base de données, à la fois dans Visual Studio et Azure.
Dans le menu Outils, sélectionnez Gestionnaire de package NuGet>Console du gestionnaire de package.
Dans la console du Gestionnaire de package, installez les packages suivants :
Install-Package Microsoft.Data.SqlClient Install-Package Microsoft.EntityFramework.SqlServerDans une ligne de commande PowerShell, exécutez la commande suivante pour vous connecter à SQL Database, en
<server-name>remplaçant par le nom de votre serveur et<entra-id-user>par le nom d’utilisateur Microsoft Entra que vous avez utilisé pour configurer la base de données dans Visual Studio. Cet utilisateur Entra dispose d’un accès administrateur au serveur de base de données par défaut.sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30Suivez les invites pour vous connecter.
À l’invite SQL, exécutez les commandes suivantes pour accorder les autorisations minimales dont votre application a besoin, en
<app-name>remplaçant par le nom de votre application.CREATE USER [<app-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<app-name>]; ALTER ROLE db_datawriter ADD MEMBER [<app-name>]; ALTER ROLE db_ddladmin ADD MEMBER [<app-name>]; GO
Mettre à jour le contexte de la base de données
L’application utilise un contexte de base de données pour se connecter à la base de données, qui est référencée dans le fichier Models/MyDatabaseContext.cs . Dans cette section, vous mettez à jour le code pour faire référence au fournisseur SQL Server Entity Framework 6, qui dépend du fournisseur de ADO.NET Microsoft.Data.SqlClient moderne.
Le fournisseur Entity Framework 6 remplace le fournisseur intégré SQL Server et inclut la prise en charge des méthodes d'authentification de Microsoft Entra ID. Pour plus d’informations, consultez Microsoft.EntityFramework.SqlServer}.
[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] fonctionne localement pour utiliser Microsoft.Data.SqlClient pour le contexte de base de données, mais comme System.Data.SqlClient est codé en dur en tant que fournisseur dans Azure App Service, vous devez étendre MicrosoftSqlDbConfiguration pour rediriger les références vers System.Data.SqlClient à la place.
Dans web.config, supprimez la
entityFramework/providers/providersection et la<provider invariantName="System.Data.SqlClient" .../>ligne.Dans Models/MyDatabaseContext.cs, ajoutez la classe suivante :
public class AppServiceConfiguration : MicrosoftSqlDbConfiguration { public AppServiceConfiguration() { SetProviderFactory("System.Data.SqlClient", Microsoft.Data.SqlClient.SqlClientFactory.Instance); SetProviderServices("System.Data.SqlClient", MicrosoftSqlProviderServices.Instance); SetExecutionStrategy("System.Data.SqlClient", () => new MicrosoftSqlAzureExecutionStrategy()); } }Ajoutez l’attribut suivant à la
MyDatabaseContextdéclaration de classe :[DbConfigurationType(typeof(AppServiceConfiguration))]
Déployer l’application ASP.NET
En haut de l’onglet Publier , sélectionnez Publier. Votre application ASP.NET se déploie sur Azure et votre navigateur par défaut démarre sur l’URL de l’application déployée.
Pour tester l’application, ajoutez quelques éléments to-do.
Félicitations ! Votre application ASP.NET orientée données s’exécute dans Azure App Service.
Utiliser l’Explorateur d’objets SQL Server
Vous pouvez utiliser l’Explorateur d’objets Visual Studio SQL Server pour explorer et gérer facilement votre base de données Azure SQL. Dans l’Explorateur d’objets SQL Server, vous pouvez effectuer des opérations de base de données les plus courantes, telles que l’exécution de requêtes ou la création de tables, de vues et de procédures stockées.
Autoriser une connexion client à partir de votre ordinateur
Par défaut, le serveur Azure autorise les connexions à ses bases de données uniquement à partir de services Azure, tels que votre application Azure. La nouvelle base de données a ouvert son pare-feu à l’application App Service que vous avez créée.
Pour accéder à la base de données à partir de votre ordinateur local, par exemple à partir de Visual Studio, le serveur Azure doit ouvrir le pare-feu pour autoriser l’accès pour l’adresse IP publique de l’ordinateur.
Si vous êtes invité à ajouter l’accès pour votre client local, veillez à sélectionner l’option permettant d’autoriser l’adresse IP publique de votre ordinateur. Cette option crée une règle de pare-feu pour autoriser l’adresse IP publique de votre ordinateur local. La boîte de dialogue est déjà remplie avec l’adresse IP actuelle de votre ordinateur.
Si vous ne recevez pas d’invite pour ajouter l’accès à votre ordinateur local, vous pouvez accéder à votre base de données Azure SQL dans le portail Azure et sélectionner Définir le pare-feu du serveur dans la barre de menus supérieure. Dans la page Mise en réseau sous règles de pare-feu, sélectionnez l’option permettant d’ajouter votre adresse IPv4 cliente.
Remarque
Si votre fournisseur de services Internet change votre adresse IP publique, vous devez reconfigurer le pare-feu pour accéder à nouveau à la base de données Azure.
Se connecter à la base de données Azure SQL localement
Dans le menu Vue, sélectionnez Explorateur d’objets SQL Server.
En haut de la fenêtre explorateur d’objets SQL Server , sélectionnez l’icône pour ajouter SQL Server.
Sur l’écran Se connecter , votre connexion s’affiche sous le nœud Azure . Renseignez les informations de votre nom de serveur, nom d’utilisateur, mot de passe et nom de base de données, puis sélectionnez Se connecter.
Une fois que Visual Studio a terminé de configurer la connexion pour votre instance SQL Database, votre base de données s’affiche dans l’Explorateur d’objets SQL Server. Développez <votre nom de connexion>>Base de données><votre nom de base de données>> pour afficher les données.
Développez Tables, cliquez avec le bouton droit sur la
ToDoestable, puis sélectionnez Afficher les données pour interagir avec les données de base de données.
Mettre à jour l’application avec code First Migrations
Vous pouvez utiliser des outils familiers dans Visual Studio pour mettre à jour votre base de données et votre application dans Azure. Dans cette étape, vous utilisez Code First Migrations dans Entity Framework pour modifier votre schéma de base de données et publier la modification sur Azure.
Pour plus d’informations sur l’utilisation de Migrations Entity Framework Code First, consultez Getting Started with Entity Framework 6 Code First using MVC 5 (Mise en route avec Entity Framework 6 Code First à l’aide de MVC 5).
Mettre à jour votre modèle de données
Ouvrez Models\Todo.cs dans l’éditeur de code. Ajoutez la propriété suivante à la classe ToDo :
public bool Done { get; set; }
Exécuter la fonction Code First Migrations en local
Exécutez quelques commandes pour mettre à jour votre base de données locale.
Dans le menu Outils, sélectionnez Gestionnaire de package NuGet>Console du gestionnaire de package.
Dans la fenêtre de Console du Gestionnaire de package, activez les Migrations Code First :
Enable-MigrationsAjoutez une migration :
Add-Migration AddPropertyMettez à jour la base de données locale :
Update-DatabaseAppuyez sur Ctrl+F5 pour exécuter l’application. Testez les liens Modifier, Détails et Créer des liens.
Si l’application se charge sans erreur, Code First Migrations a réussi. Votre page garde cependant le même aspect car votre logique d’application n’utilise pas encore cette nouvelle propriété.
Utiliser la nouvelle propriété
Apportez des modifications dans votre code pour voir la Done propriété en action. Pour ce didacticiel, vous modifiez uniquement les vues Index et Create pour utiliser la nouvelle propriété.
Ouvrez Controllers\TodosController.cs et, dans la méthode de la
Create()ligne 52, ajoutezDoneà la liste des propriétés de l’attributBind. VotreCreate()signature de méthode doit ressembler au code suivant :public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)Ouvrez Views\Todos\Create.cshtml et, dans le code Razor, notez l’élément
<div class="form-group">qui utilisemodel.Descriptionet l’élément<div class="form-group">qui utilisemodel.CreatedDate.Après ces deux éléments, ajoutez l’élément suivant
<div class="form-group">qui utilisemodel.Done:<div class="form-group"> @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> <div class="checkbox"> @Html.EditorFor(model => model.Done) @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" }) </div> </div> </div>Ouvrez Views\Todos\Index.cshtml, et juste au-dessus de l’élément vide
<th></th>, ajoutez le code Razor suivant :<th> @Html.DisplayNameFor(model => model.Done) </th>Au-dessus de l’élément
<td>qui contient lesHtml.ActionLink()méthodes d’assistance, ajoutez un autre<td>élément avec le code Razor suivant :<td> @Html.DisplayFor(modelItem => item.Done) </td>Enregistrez tous les fichiers, puis appuyez sur Ctrl+F5 pour exécuter l’application.
Dans l’application, ajoutez un élément to-do, puis sélectionnez Terminé. L’élément doit apparaître sur votre page d’accueil en tant qu’élément terminé. L’affichage Modifier n’affiche pas le champ Terminé , car vous n’avez pas modifié l’affichage Modifier .
Activer Code First Migrations dans Azure
Maintenant que votre modification de code fonctionne, y compris la migration de base de données, vous pouvez la publier sur votre application Azure et mettre à jour votre base de données Azure SQL avec Code First Migrations également.
Dans l’Explorateur de solutions Visual Studio, cliquez avec le bouton droit sur votre projet, puis sélectionnez Publier.
Sélectionnez Autres actions>Modifier pour ouvrir les paramètres de publication.
Dans la liste déroulante MyDatabaseContext , sélectionnez la connexion de base de données pour votre base de données Azure SQL.
Sélectionnez Exécuter les premières migrations de code (s’exécute au démarrage de l’application), puis sélectionnez Enregistrer.
Publier vos modifications
Maintenant que vous avez activé les Migrations Code First dans votre application Azure, publiez vos modifications du code.
Dans la page de publication, sélectionnez Publier.
Dans l’application web publiée, essayez d’ajouter plus d’éléments to-do et de sélectionner Terminé, et ils doivent apparaître sur votre page d’accueil en tant qu’éléments terminés.
Toutes les tâches existantes sont toujours affichées. Lorsque vous republiez votre application ASP.NET, les données existantes dans votre base de données Azure SQL ne sont pas perdues. En outre, Code First Migrations modifie uniquement le schéma de données et laisse vos données intactes.
Diffuser les journaux d’activité d’applications
Vous pouvez diffuser des messages de suivi directement entre votre application Azure et Visual Studio.
Ouvrez Controllers\TodosController.cs et notez que chaque action commence par une Trace.WriteLine() méthode. Ce code vous montre comment ajouter des messages de trace à votre application Azure.
Activer la diffusion de journaux
Dans la page Publication de Visual Studio, faites défiler jusqu’à la section Hébergement .
Sélectionnez les points de suspension … en haut à droite et sélectionnez Afficher les journaux de diffusion en continu.
Les journaux d’activité sont maintenant transmis à la fenêtre Sortie.
Vous ne voyez pas encore de messages de trace, car lorsque vous sélectionnez d’abord Afficher les journaux de diffusion en continu, votre application Azure définit le niveau de trace sur
Error, qui journalise uniquement les événements d’erreur à l’aide de la méthodeTrace.TraceError().
Modifier les niveaux de suivi
Pour modifier les niveaux de trace pour générer d’autres messages de trace, dans la section Hébergement de la page Publier , sélectionnez ... en haut à droite, puis sélectionnez Ouvrir dans le portail Azure.
Dans la page du portail Azure de votre application, sélectionnez App Service logs sous Surveillance dans le menu de gauche.
Sous Journalisation des applications (système de fichiers), sélectionnez Détaillé sous Niveau, puis sélectionnez Enregistrer.
Conseil
Vous pouvez expérimenter différents niveaux de suivi pour connaître les types de messages qui s’affichent pour chaque niveau. Par exemple, le niveau Informations inclut tous les journaux d’activité créés par
Trace.TraceInformation(),Trace.TraceWarning(), etTrace.TraceError(), mais pas les journaux d’activité créés parTrace.WriteLine().Dans votre navigateur, accédez à votre application de liste de tâches Azure à nouveau et parcourez l’application. Les messages de suivi comme les exemples suivants sont désormais diffusés dans la fenêtre Sortie dans Visual Studio.
Application:2025-05-12T23:41:11 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:04 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:06 PID[17108] Verbose POST /Todos/Create Application:2025-05-12T23:42:07 PID[17108] Verbose GET /Todos/Index
Arrêter la diffusion de journaux
Pour arrêter le service de journalisation en continu, sélectionnez l’icône Arrêter la surveillance dans la fenêtre Sortie.
Nettoyer les ressources
Au cours des étapes précédentes, vous avez créé des ressources Azure au sein d’un groupe de ressources. Si vous ne pensez pas avoir besoin de ces ressources à l’avenir, vous pouvez les supprimer en supprimant le groupe de ressources.
- Sur la page Vue d’ensemble de votre application web dans le Portail Azure, sélectionnez le lien myResourceGroup sous Groupe de ressources.
- Sur la page du groupe de ressources, assurez-vous que les ressources répertoriées sont bien celles que vous souhaitez supprimer.
- Sélectionnez Supprimer le groupe de ressources, tapez myResourceGroup dans la zone de texte, puis sélectionnez Supprimer.
- Confirmez à nouveau en sélectionnant Supprimer.
Contenu connexe
- Configurer une application ASP.NET pour Azure App Service
- Démarrage rapide : commencer à utiliser l’analyse des coûts
Accédez au tutoriel suivant pour découvrir comment utiliser l’identité managée pour améliorer la sécurité des connexions Azure SQL Database.