Déployer des applications ASP.NET Core sur Azure App Service

Azure App Service est un service de plateforme de cloud computing Microsoft qui permet d’héberger des applications web, notamment ASP.NET Core.

Ressources utiles

App Service Documentation héberge la documentation, les tutoriels, les exemples, les guides pratiques et d’autres ressources Azure. Voici deux didacticiels importants qui abordent l’hébergement d’applications ASP.NET Core :

Créer une application web ASP.NET Core dans Azure
Utilisez Visual Studio pour créer et déployer une application web ASP.NET Core dans Azure App Service sur Windows.

Créer une application ASP.NET Core dans App Service sur Linux
Utilisez la ligne de commande pour créer et déployer une application web ASP.NET Core dans Azure App Service sur Linux.

Consultez le tableau de bord ASP.net Core sur app service pour connaître la version de ASP.net Core disponible sur Azure App service.

Abonnez-vous au référentiel d' annonces App service et surveillez les problèmes. L’équipe App Service publie régulièrement les annonces et les scénarios arrivant dans App Service.

Les articles suivants sont disponibles dans la documentation d’ASP.NET Core :

Publier une application ASP.NET Core sur Azure avec Visual Studio
Découvrez comment publier une application ASP.NET Core sur Azure App Service à l’aide de Visual Studio.

<xref:host-and-deploy/azure-apps/azure-continuous-deployment>
Découvrez comment créer une application web ASP.NET Core à l’aide de Visual Studio et comment la déployer sur Azure App Service en utilisant Git pour le déploiement continu.

Créer votre premier pipeline
Configurez une build CI pour une application ASP.NET Core, puis créez une version de déploiement continu sur Azure App Service.

Bac à sable Azure Web App
Découvrez les limitations d’exécution du runtime Azure App Service appliquées par la plateforme Azure Apps.

résoudre les problèmes et déboguer des projets ASP.NET Core
Comprenez et résolvez les avertissements et les erreurs avec les projets ASP.NET Core.

Configuration de l’application

Plateforme

L’architecture de la plateforme (x86/x64) d’une application App Services est définie dans les paramètres de l’application dans le portail Azure pour les applications hébergées sur un niveau d’hébergement de calcul (de base) de série A. Vérifiez que les paramètres de publication de l’application (par exemple, dans le profil de publication Visual Studio (. pubxml)) correspondent au paramètre dans la configuration de service de l’application dans le portail Azure.

Des runtimes pour les applications 64 bits (x64) et 32 bits (x 86) sont présents sur Azure App Service. Le SDK .NET Core disponible sur App Service est 32 bits, mais vous pouvez déployer des applications 64 bits crées localement en utilisant la console Kudu ou le processus de publication de Visual Studio. Pour plus d’informations, consultez la section Publier et déployer l’application.

Concernant les applications avec des dépendances natives, des runtimes pour les applications 32 bits (x86) sont présents sur Azure App Service. Le SDK .NET Core disponible sur App Service est 32 bits.

Pour plus d’informations sur les composants .NET Core Framework et les méthodes de distribution, telles que les informations sur le Runtime .NET Core et le kit SDK .NET Core, consultez à propos de .net Core : composition.

.

Ajoutez les packages NuGet suivants pour fournir des fonctionnalités de journalisation automatique aux applications déployées sur Azure App Service :

Les packages précédents ne sont pas disponibles dans le métapackage Microsoft.AspNetCore.App. Les applications qui ciblent le .NET Framework ou référencent le métapackage Microsoft.AspNetCore.App doivent référencer explicitement les packages individuels dans le fichier projet de l’application.

Remplacer la configuration de l’application à l’aide du Portail Azure

Les paramètres d’application dans le portail Azure vous permettent de définir des variables d’environnement pour l’application. Celles-ci peuvent être utilisées par le Fournisseur de configuration des variables d’environnement.

Quand un paramètre d’application est créé ou modifié dans le portail Azure et que le bouton Enregistrer est sélectionné, Azure App redémarre. La variable d’environnement est à la disposition de l’application après le redémarrage du service.

Quand une application utilise l' hôte générique, les variables d’environnement sont chargées dans la configuration de l’application lorsque CreateDefaultBuilder est appelé pour générer l’hôte. Pour plus d’informations, voir Hôte générique .NET dans ASP.NET Core et Fournisseur de configuration des variables d’environnement.

Les paramètres d’application dans le portail Azure vous permettent de définir des variables d’environnement pour l’application. Celles-ci peuvent être utilisées par le Fournisseur de configuration des variables d’environnement.

Quand un paramètre d’application est créé ou modifié dans le portail Azure et que le bouton Enregistrer est sélectionné, Azure App redémarre. La variable d’environnement est à la disposition de l’application après le redémarrage du service.

Quand une application utilise l' hôte Web, les variables d’environnement sont chargées dans la configuration de l’application lorsque CreateDefaultBuilder est appelé pour générer l’hôte. Pour plus d’informations, voir Hôte web ASP.NET Core et Fournisseur de configuration des variables d’environnement.

Scénarios avec un serveur proxy et un équilibreur de charge

Le middleware d’intégration IIS, qui configure le middleware des en-têtes transférés lors de l’hébergement out-of-process, et le module ASP.NET Core sont configurés pour transférer le schéma (HTTP/HTTPS) et l’adresse IP distante d’où provient la requête. Une configuration supplémentaire peut être nécessaire pour les applications hébergées derrière des serveurs proxy et des équilibreurs de charge supplémentaires. Pour plus d’informations, consultez l’article Configurer ASP.NET Core pour l’utilisation de serveurs proxy et d’équilibreurs de charge.

Surveillance et journalisation

Les applications ASP.NET Core déployées sur App Service reçoivent automatiquement une extension App Service, Intégration de journalisation ASP.NET Core. L’extension permet d’intégrer la journalisation dans les applications ASP.NET Core sur Azure App Service.

Les applications ASP.NET Core déployées sur App Service reçoivent automatiquement une extension App Service, Extensions de journalisation ASP.NET Core. L’extension permet d’intégrer la journalisation dans les applications ASP.NET Core sur Azure App Service.

Pour des informations de surveillance, de journalisation et de dépannage, consultez les articles suivants :

Surveiller les applications dans Azure App Service
Découvrez comment consulter les quotas et les métriques des applications et des plans App Service.

Activer la journalisation des diagnostics pour les applications dans Azure App Service
Découvrez comment activer et accéder à la journalisation des diagnostics pour les codes d’état HTTP, les requêtes en échec et les activités de serveur web.

Gérer les erreurs dans ASP.NET Core
Découvrez les approches courantes permettant de gérer les erreurs dans les applications ASP.NET Core.

résoudre les problèmes de ASP.NET Core sur Azure App Service et IIS
Découvrez comment diagnostiquer les problèmes de déploiements Azure App Service avec les applications ASP.NET Core.

Informations de référence sur les erreurs courantes pour Azure App Service et IIS avec ASP.NET Core
Découvrez les erreurs de configuration de déploiement courantes dans les applications hébergées par Azure App Service/IIS, ainsi que des conseils de dépannage.

Porte-clés de Protection des données et emplacements de déploiement

Les clés de Protection des données sont persistantes dans le dossier %HOME%\ASP.NET\DataProtection-Keys. Ce dossier est alimenté par le stockage réseau et synchronisé sur tous les ordinateurs hébergeant l’application. Les clés ne sont pas protégées au repos. Ce dossier fournit le porte-clés à toutes les instances d’une application dans un seul emplacement de déploiement. Les emplacements de déploiement distincts, tels que Préproduction et Production, ne partagent pas de porte-clés.

Lors d’une permutation entre les emplacements de déploiement, aucun système utilisant la protection des données ne peut déchiffrer les données stockées à l’aide du porte-clés au sein de l’emplacement précédent. CookieL’intergiciel ASP.NET utilise la protection des données pour protéger ses cookie s. Cela amène les utilisateurs à se déconnecter d’une application qui utilise l’intergiciel standard ASP.NET Cookie . Pour une solution de porte-clés indépendante de l’emplacement, utilisez un fournisseur de porte-clés externe, tel que :

  • Stockage Blob Azure
  • Azure Key Vault
  • Magasin SQL
  • Le cache Redis

Pour plus d'informations, consultez Fournisseurs de stockage de clés dans ASP.NET Core.

Déployer une application ASP.NET Core qui utilise une version préliminaire de .NET Core

Pour déployer une application qui utilise une version préliminaire de .NET Core, consultez les ressources suivantes. Ces approches sont également utilisées lorsque le runtime est disponible, mais que le kit de développement logiciel (SDK) n’a pas été installé sur Azure App Service.

Consultez le tableau de bord ASP.net Core sur app service pour connaître la version de ASP.net Core disponible sur Azure App service.

Spécifier la version de kit SDK .NET Core à l’aide de Azure Pipelines

Utilisez Azure App service scénarios ci/CD pour configurer une build d’intégration continue avec Azure DevOps. Une fois la build Azure DevOps créée, vous pouvez éventuellement configurer la build pour qu’elle utilise une version spécifique du kit de développement logiciel (SDK).

Spécifier la version de kit SDK .NET Core

Lorsque vous utilisez le centre de déploiement App service pour créer une build Azure DevOps, le pipeline de build par défaut comprend des étapes pour Restore ,, Build Test et Publish . Pour spécifier la version du kit de développement logiciel (SDK), cliquez sur le bouton Ajouter (+) dans la liste des travaux de l’agent pour ajouter une nouvelle étape. Recherchez Kit SDK .net Core dans la barre de recherche.

Ajouter l’étape kit SDK .NET Core

Déplacez l’étape dans la première position de la build afin que les étapes qui suivent utilisent la version spécifiée du kit SDK .NET Core. Spécifiez la version du kit SDK .NET Core. Dans cet exemple, le kit de développement logiciel (SDK) a la valeur 3.0.100 .

Étape du SDK terminée

Pour publier un Déploiement autonome (SCD), configurez la SCD à l' Publish étape et fournissez l' identificateur de Runtime (RID).

Publication autonome

Déployer une application en préversion autonome

Un déploiement autonome (SCD) qui cible une préversion runtime exécute le runtime de la préversion dans le déploiement.

Pendant le déploiement d’une application autonome :

Suivez les instructions de la section Déployer l’application autonome.

Utiliser Docker avec Web Apps pour conteneurs

Docker Hub contient les dernières images de Docker en préversion. Les images peuvent être utilisées comme images de base. Utilisez l’image pour effectuer un déploiement sur Web Apps pour conteneurs normalement.

Installer l’extension de site de version Preview

Si un problème se produit à l’aide de l’extension de site en version préliminaire, ouvrez un problème dotnet/AspNetCore.

  1. Dans le portail Azure, accédez à App Service.
  2. Sélectionnez l’application web.
  3. Tapez « ex » dans la zone de recherche pour filtrer sur les « Extensions » ou faites défiler la liste outils de gestion.
  4. Sélectionnez Extensions.
  5. Sélectionnez Ajouter.
  6. Sélectionnez l’extension ASP.NET Core {X.Y} ({x64|x86}) Runtime dans la liste, où {X.Y} correspond à la préversion d’ASP.NET Core et {x64|x86} spécifie la plateforme.
  7. Sélectionnez OK pour accepter les conditions légales.
  8. Sélectionnez OK pour installer l’extension.

Une fois l’opération effectuée, la dernière préversion de .NET Core est installée. Vérifiez l’installation :

  1. Sélectionnez Outils avancés.

  2. Sélectionnez Go dans Outils avancés.

  3. Sélectionnez l’élément de menu PowerShell de la console de débogage > PowerShell .

  4. À l’invite PowerShell, exécutez la commande suivante. Remplacez {X.Y} par la version du runtime ASP.NET Core et {PLATFORM} par la plateforme dans la commande :

    Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.{PLATFORM}\
    

    La commande retourne True quand le runtime de la préversion x64 est installée.

Notes

L’architecture de la plateforme (x86/x64) d’une application App Services est définie dans les paramètres de l’application dans le portail Azure pour les applications hébergées sur un niveau d’hébergement de calcul (de base) de série A. Vérifiez que les paramètres de publication de l’application (par exemple, dans le profil de publication Visual Studio (. pubxml)) correspondent au paramètre dans la configuration de service de l’application dans la portail Azure.

Si l’application s’exécute en mode in-process et si la plateforme est configurée pour une architecture 64 bits (x64), le module ASP.NET Core utilise le runtime de la préversion 64 bits, le cas échéant. Installez l’extension d' exécution de ASP.net Core {X. Y} (x64) à l’aide du portail Azure.

Après l’installation du runtime d’évaluation x64, exécutez la commande suivante dans la fenêtre de commande Azure Kudu PowerShell pour vérifier l’installation. Remplacez la version du runtime ASP.NET Core pour {X.Y} dans la commande suivante :

Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\

La commande retourne True quand le runtime de la préversion x64 est installée.

Notes

Les extensions ASP.NET Core permettent d’activer des fonctionnalités supplémentaires pour ASP.NET Core sur Azure App Services, par exemple la journalisation Azure. L’extension est installée automatiquement quand vous effectuez le déploiement à partir de Visual Studio. Si l’extension n’est pas installée, installez-la pour l’application.

Utiliser l’extension de site en préversion avec un modèle ARM

Si un modèle ARM est utilisé pour créer et déployer des applications, le type de ressource siteextensions peut être utilisé pour ajouter l’extension de site à une application web. Par exemple :

{
    ...
    "parameters": {
        "site_name": {
            "defaultValue": "{SITE NAME}",
            "type": "String"
        },
        ...
    },       
    ...
    "resources": [
        ...
        {
            "type": "Microsoft.Web/sites/siteextensions",
            "apiVersion": "2018-11-01",
            "name": "[concat(parameters('site_name'), '/AspNetCoreRuntime.5.0.x64')]",
            "location": "[resourceGroup().location]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
            ]
        }
    ]
}
    

Publier et déployer l’application

Pour un déploiement de 64 bits :

  • Utilisez un SDK .NET Core 64 bits pour générer une application 64 bits.
  • Définissez Plateforme sur 64 bits dans Configuration > Paramètres généraux d’App Service. L’application doit utiliser un plan de service De base ou supérieur pour permettre le choix du nombre de bits de la plateforme.

Déployer l’application en fonction du framework

  1. Sélectionnez générer > publier {nom de l’application} dans la barre d’outils de Visual Studio ou cliquez avec le bouton droit sur le projet dans Explorateur de solutions puis sélectionnez publier.
  2. Dans la boîte de dialogue Choisir une cible de publication, confirmez qu’App Service est sélectionné.
  3. Sélectionnez Avancé. La boîte de dialogue Publier s’ouvre.
  4. Dans la boîte de dialogue Publier :
    • Confirmez que la configuration Mise en production est sélectionnée.
    • Ouvrez la liste déroulante Mode de déploiement et sélectionnez Dépendant du framework.
    • Sélectionnez Portable comme Runtime cible.
    • Si vous devez supprimer des fichiers supplémentaires lors du déploiement, ouvrez Options de publication de fichiers et sélectionnez la case à cocher pour supprimer des fichiers supplémentaires à la destination.
    • Sélectionnez Enregistrer.
  5. Créez un nouveau site ou mettez à jour un site existant en suivant les autres invites de l'Assistant de publication.

Déployer l’application autonome

Utilisez Visual Studio ou le CLI .NET Core pour un Déploiement autonome (SCD).

  1. Sélectionnez générer > publier {nom de l’application} dans la barre d’outils de Visual Studio ou cliquez avec le bouton droit sur le projet dans Explorateur de solutions puis sélectionnez publier.
  2. Dans la boîte de dialogue Choisir une cible de publication, confirmez qu’App Service est sélectionné.
  3. Sélectionnez Avancé. La boîte de dialogue Publier s’ouvre.
  4. Dans la boîte de dialogue Publier :
    • Confirmez que la configuration Mise en production est sélectionnée.
    • Ouvrez la liste déroulante Mode de déploiement et sélectionnez Autonome.
    • Sélectionnez le runtime cible à partir de la liste déroulante Runtime cible. La valeur par défaut est win-x86.
    • Si vous devez supprimer des fichiers supplémentaires lors du déploiement, ouvrez Options de publication de fichiers et sélectionnez la case à cocher pour supprimer des fichiers supplémentaires à la destination.
    • Sélectionnez Enregistrer.
  5. Créez un nouveau site ou mettez à jour un site existant en suivant les autres invites de l'Assistant de publication.

Paramètres de protocole (HTTPS)

Les liaisons de protocole sécurisées permettent de spécifier un certificat à utiliser pour répondre à des requêtes sur HTTPS. La liaison nécessite un certificat privé valide (.pfx) émis pour le nom d’hôte spécifique. Pour plus d’informations, consultez Didacticiel : lier un certificat SSL personnalisé existant à Azure App service.

Transformer web.config

Si vous devez transformer web.config lors de la publication (par exemple, définir les variables d’environnement basées sur la configuration, le profil ou l’environnement), consultez Transformer web.config.

Ressources complémentaires

Azure App Service sur Windows Server utilise IIS (Internet Information Services). Les rubriques suivantes se rapportent à la technologie IIS sous-jacente :