Partager via


Tutoriel : Déployer une application ASP.NET avec Azure SQL Database sur Azure

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.

Capture d’écran montrant une application ASP.NET publiée dans Azure App Service.

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.

  1. Téléchargez l’exemple de projet et extrayez le fichier dotnet-sqldb-tutorial-master.zip .

  2. Ouvrez le fichier dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln extrait dans Visual Studio.

  3. 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.

  4. Dans l’application, sélectionnez Créer nouveau et créez quelques éléments to-do .

    Capture d’écran montrant l’application web ASP.NET.

  5. 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.

  1. Dans l’Explorateur de solutions Visual Studio, cliquez avec le bouton droit sur le projet DotNetAppSqlDb , puis sélectionnez Publier.

    Capture d’écran montrant Publier à partir de l’Explorateur de solutions.

  2. Dans l’écran Publier , sélectionnez Azure comme cible, puis sélectionnez Suivant.

  3. 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

  1. Dans l’écran De publication suivant, connectez-vous à votre compte Microsoft et à l’abonnement que vous souhaitez utiliser.

  2. À côté de App Service, sélectionnez Créer un nouveau.

    Capture d’écran montrant la sélection de Créer pour App Service dans le volet Publier.

Configurer le Service App Azure

  1. Dans l’écran App Service (Windows), configurez le nom App Service, le groupe de ressources et le plan d’hébergement.

    Capture d’écran montrant la création d’un plan App Service.

  2. 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.

  3. 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.

  4. 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)
  5. 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

    Capture d’écran montrant la création du plan d’hébergement.

  6. Dans l’écran App Service (Windows), sélectionnez Créer, puis attendez que les ressources Azure soient créées.

  7. L’écran Publier affiche les ressources que vous avez configurées. Sélectionnez Terminer, puis Fermer.

    Capture d’écran montrant les ressources que vous avez créées.

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.

  1. 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 .

    Capture d’écran montrant la configuration de la dépendance SQL Database.

  2. Dans l’écran Se connecter à la dépendance , sélectionnez Azure SQL Database , puis sélectionnez Suivant.

  3. Dans l’écran Configurer Azure SQL Database , sélectionnez Créer nouveau.

  4. Dans l’écran Azure SQL Database, en regard du serveur de base de données, sélectionnez Nouveau.

  5. 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.

  6. Cliquez sur OK.

    Capture d’écran montrant la création du serveur.

  7. 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.

    Capture d’écran montrant la configuration de la base de données.

  8. Lorsque les ressources de base de données sont créées, sélectionnez Suivant.

  9. 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.

  1. Dans le menu Outils, sélectionnez Gestionnaire de package NuGet>Console du gestionnaire de package.

  2. Dans la console du Gestionnaire de package, installez les packages suivants :

    Install-Package Microsoft.Data.SqlClient
    Install-Package Microsoft.EntityFramework.SqlServer
    
  3. Dans 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 30
    

    Suivez les invites pour vous connecter.

  4. À 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.

  1. Dans web.config, supprimez la entityFramework/providers/provider section et la <provider invariantName="System.Data.SqlClient" .../> ligne.

  2. 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());
            }
        }
    
  3. Ajoutez l’attribut suivant à la MyDatabaseContext déclaration de classe :

    [DbConfigurationType(typeof(AppServiceConfiguration))]
    

Déployer l’application ASP.NET

  1. 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.

  2. Pour tester l’application, ajoutez quelques éléments to-do.

    Capture d’écran montrant l’application ASP.NET publiée dans Azure App Service.

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

  1. Dans le menu Vue, sélectionnez Explorateur d’objets SQL Server.

  2. En haut de la fenêtre explorateur d’objets SQL Server , sélectionnez l’icône pour ajouter SQL Server.

  3. 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.

    Capture d’écran montrant la configuration de la connexion de base de données à partir de Visual Studio.

  4. 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.

  5. Développez Tables, cliquez avec le bouton droit sur la ToDoes table, puis sélectionnez Afficher les données pour interagir avec les données de base de données.

    Capture d’écran montrant l’exploration d’objets SQL Database.

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.

  1. Dans le menu Outils, sélectionnez Gestionnaire de package NuGet>Console du gestionnaire de package.

  2. Dans la fenêtre de Console du Gestionnaire de package, activez les Migrations Code First :

    Enable-Migrations
    
  3. Ajoutez une migration :

    Add-Migration AddProperty
    
  4. Mettez à jour la base de données locale :

    Update-Database
    
  5. Appuyez 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é.

  1. Ouvrez Controllers\TodosController.cs et, dans la méthode de la Create() ligne 52, ajoutez Done à la liste des propriétés de l’attribut Bind . Votre Create() signature de méthode doit ressembler au code suivant :

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  2. Ouvrez Views\Todos\Create.cshtml et, dans le code Razor, notez l’élément <div class="form-group"> qui utilise model.Description et l’élément <div class="form-group"> qui utilise model.CreatedDate.

    Après ces deux éléments, ajoutez l’élément suivant <div class="form-group"> qui utilise model.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>
    
  3. 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>
    
  4. Au-dessus de l’élément <td> qui contient les Html.ActionLink() méthodes d’assistance, ajoutez un autre <td> élément avec le code Razor suivant :

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    
  5. Enregistrez tous les fichiers, puis appuyez sur Ctrl+F5 pour exécuter l’application.

  6. 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.

  1. Dans l’Explorateur de solutions Visual Studio, cliquez avec le bouton droit sur votre projet, puis sélectionnez Publier.

  2. Sélectionnez Autres actions>Modifier pour ouvrir les paramètres de publication.

    Capture d’écran montrant l’ouverture des paramètres de publication.

  3. Dans la liste déroulante MyDatabaseContext , sélectionnez la connexion de base de données pour votre base de données Azure SQL.

  4. Sélectionnez Exécuter les premières migrations de code (s’exécute au démarrage de l’application), puis sélectionnez Enregistrer.

    Capture d’écran montrant l’activation de Code First Migrations dans l’application Azure.

Publier vos modifications

Maintenant que vous avez activé les Migrations Code First dans votre application Azure, publiez vos modifications du code.

  1. Dans la page de publication, sélectionnez Publier.

  2. 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.

    Capture d’écran montrant l’application Azure après la première migration du code.

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

  1. Dans la page Publication de Visual Studio, faites défiler jusqu’à la section Hébergement .

  2. Sélectionnez les points de suspension en haut à droite et sélectionnez Afficher les journaux de diffusion en continu.

    Capture d’écran montrant Activer le streaming de journaux.

    Les journaux d’activité sont maintenant transmis à la fenêtre Sortie.

    Capture d’écran montrant le streaming de journaux dans 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éthode Trace.TraceError().

Modifier les niveaux de suivi

  1. 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.

  2. Dans la page du portail Azure de votre application, sélectionnez App Service logs sous Surveillance dans le menu de gauche.

  3. 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(), et Trace.TraceError(), mais pas les journaux d’activité créés par Trace.WriteLine().

  4. 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.

Capture d’écran montrant Arrêter le streaming de journaux.

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.

  1. Sur la page Vue d’ensemble de votre application web dans le Portail Azure, sélectionnez le lien myResourceGroup sous Groupe de ressources.
  2. Sur la page du groupe de ressources, assurez-vous que les ressources répertoriées sont bien celles que vous souhaitez supprimer.
  3. Sélectionnez Supprimer le groupe de ressources, tapez myResourceGroup dans la zone de texte, puis sélectionnez Supprimer.
  4. Confirmez à nouveau en sélectionnant Supprimer.

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.