Déployer des applications ASP.NET Core sur Azure App Service
Remarque
Ceci n’est pas la dernière version de cet article. Pour la version actuelle, consultez la version .NET 8 de cet article.
Avertissement
Cette version d’ASP.NET Core n’est plus prise en charge. Pour plus d’informations, consultez la Stratégie de prise en charge de .NET et .NET Core. Pour la version actuelle, consultez la version .NET 8 de cet article.
Important
Ces informations portent sur la préversion du produit, qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.
Pour la version actuelle, consultez la version .NET 8 de cet article.
Azure App Service est un service de plateforme de cloud computing Microsoft qui permet d’héberger des applications web, notamment ASP.NET Core.
Modèles d’application web fiables
Consultez Le modèle d’application web fiable pour .NET vidéos YouTube et l’article pour obtenir un guide sur la création d’une application ASP.NET Core moderne, fiable, performante, testable, économique et évolutive, que ce soit à partir de zéro ou en refactorisant une application existante.
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 d’ASP.NET Core sur App Service pour connaître la version d’ASP.NET Core disponible sur Azure App Service.
Abonnez-vous au dépôt des annonces relatives à App Service pour effectuer un monitoring des problèmes. L’équipe App Service poste 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.
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 effectuer le débogage des projets ASP.NET Core
Comprenez et résolvez les avertissements et les erreurs avec les projets ASP.NET Core.
Configuration de l’application
Plate-forme
L’architecture de plateforme (x86/x64) d’une application App Services est définie dans les paramètres de l’application au sein du portail Azure pour les applications hébergées sur une instance de calcul de série A (de base) ou supérieure. Vérifiez que les paramètres de publication de l’application (par exemple dans le profil de publication (.pubxml) de Visual Studio) correspondent au paramètre de configuration du service de l’application dans le portail Azure.
Les applications ASP.NET Core peuvent être publiées dépendantes de l’infrastructure, car les runtimes pour les applications 64 bits (x64) et 32 bits (x86) sont présentes 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 et les méthodes de distribution du framework .NET Core, par exemple concernant le runtime .NET Core et le kit SDK .NET Core, consultez À propos de .NET Core : Composition.
Packages
Ajoutez les packages NuGet suivants pour fournir des fonctionnalités de journalisation automatique aux applications déployées sur Azure App Service :
- Microsoft.AspNetCore.AzureAppServices.HostingStartup utilise IHostingStartup pour intégrer la journalisation ASP.NET Core à Azure App Service. Les fonctionnalités de journalisation ajoutées sont fournies par le package
Microsoft.AspNetCore.AzureAppServicesIntegration
. - Microsoft.AspNetCore.AzureAppServicesIntegration exécute AddAzureWebAppDiagnostics pour ajouter les fournisseurs de journalisation des diagnostics Azure App Service au package
Microsoft.Extensions.Logging.AzureAppServices
. - Microsoft.Extensions.Logging.AzureAppServices fournit des implémentations de journaliseur pour prendre en charge les journaux de diagnostics et les fonctionnalités de streaming de journal Azure App Service.
Les packages précédents doivent être référencés explicitement 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 au moment où CreateDefaultBuilder est appelé pour générer l’hôte. Pour plus d’informations, consultez Hôte générique .NET dans ASP.NET Core et Fournisseur de configuration de 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 au moment où CreateDefaultBuilder est appelé pour générer l’hôte. Pour plus d’informations, consultez Hôte web ASP.NET Core et Fournisseur de configuration de 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 liés à 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.
Résolution des problèmes courants 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. Le middleware (intergiciel) ASP.NET Cookie utilise la protection des données pour protéger ses cookies. Cela entraîne la déconnexion des utilisateurs des applications qui utilisent le middleware ASP.NET Cookie standard. 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
- 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 préversion de .NET Core
Pour déployer une application qui utilise une préversion de .NET Core, consultez les ressources suivantes. Ces approches sont également utilisées quand le runtime est disponible mais que le kit SDK n’a pas été installé sur Azure App Service.
- Spécifier la version du kit SDK .NET Core à l’aide d’Azure Pipelines
- Déployer une application en préversion autonome
- Utiliser Docker avec Web Apps pour conteneurs
- Installer l’extension de site de version Preview
Consultez le tableau de bord d’ASP.NET Core sur App Service pour connaître la version d’ASP.NET Core disponible sur Azure App Service.
Pour plus d’informations sur la version du kit SDK .NET à sélectionner dans les déploiements autonomes, consultez Sélectionner la version .NET Core à utiliser.
Spécifier la version du kit SDK .NET Core à l’aide d’Azure Pipelines
Utilisez les scénarios CI/CD d’Azure App Service pour configurer une build d’intégration continue avec Azure DevOps. Une fois la build Azure DevOps créée, configurez-la éventuellement pour qu’elle utilise une version spécifique du kit SDK.
Spécifier la version du kit SDK .NET Core
Quand 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 SDK, sélectionnez le bouton Ajouter (+) dans la liste des travaux de l’agent afin d’ajouter une nouvelle étape. Recherchez kit SDK .NET Core dans la barre de recherche.
Déplacez l’étape en première position dans la build pour 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 SDK a la valeur 3.0.100
.
Pour publier un déploiement autonome (SCD), configurez celui-ci à l’étape Publish
, et indiquez l’identificateur de runtime (RID).
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 :
- Le site dans Azure App Service ne requiert pas l’extension du site de préversion.
- L’application doit être publiée suivant une autre approche que dans le cadre de la publication d’un déploiement en fonction de l’infrastructure (FDD).
Suivez les instructions de la section Déployer l’application autonome.
Utiliser Docker avec Web Apps pour conteneurs
Le Docker Hub à l’adresse https://hub.docker.com/_/microsoft-dotnet
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 durant l’utilisation de l’extension de site en préversion, ouvrez un ticket relatif au problème dotnet/AspNetCore.
- Dans le portail Azure, accédez à App Service.
- Sélectionnez l’application web.
- Tapez « ex » dans la zone de recherche pour filtrer sur les « Extensions » ou faites défiler la liste outils de gestion.
- Sélectionnez Extensions.
- Sélectionnez Ajouter.
- 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. - Sélectionnez OK pour accepter les conditions légales.
- 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 :
Sélectionnez Outils avancés.
Sélectionnez Go dans Outils avancés.
Sélectionnez l’élément de menu Console de débogage>PowerShell.
À 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.
Remarque
L’architecture de plateforme (x86/x64) d’une application App Services est définie dans les paramètres de l’application au sein du portail Azure pour les applications hébergées sur une instance de calcul de série A (de base) ou supérieure. Vérifiez que les paramètres de publication de l’application (par exemple dans le profil de publication (.pubxml) de Visual Studio) correspondent au paramètre de configuration du service de l’application dans le 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 Runtime ASP.NET Core {X.Y} (x64) à l’aide du portail Azure.
Une fois que vous avez installé la préversion du runtime x64, exécutez la commande suivante dans la fenêtre Commande Azure Kudu PowerShell pour vérifier l’installation. Remplacez {X.Y}
par la version du runtime ASP.NET Core 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.
Remarque
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 de la version Preview avec un modèle ARM
Si un modèle ARM est utilisé pour créer et déployer des applications, le type de ressource Microsoft.Web/sites/siteextensions
peut être utilisé pour ajouter l’extension de site à une application web. Dans l’exemple suivant, l’extension de site du runtime ASP.NET Core 5.0 (x64) (AspNetCoreRuntime.5.0.x64
) est ajoutée à l’application :
{
...
"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'))]"
]
}
]
}
Pour l’espace réservé {SITE NAME}
, utilisez le nom de l’application dans Azure App Service (par exemple contoso
).
Publier et déployer l’application
Pour un déploiement 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
Les applications publiées en tant qu’applications dépendantes du framework sont multiplateformes et n’incluent pas le runtime .NET dans le déploiement. Azure App Service inclut le runtime .NET.
- Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Publier. Vous pouvez également sélectionner Build>Publier {Nom d’application} dans la barre d’outils de Visual Studio.
- Dans la boîte de dialogue Publier, sélectionnez Azure>Suivant.
- Sélectionnez le service Azure.
- Sélectionnez Avancé. La boîte de dialogue Publier s’ouvre.
- Sélectionnez un groupe de ressources et un plan d’hébergement, ou créez-en d’autres.
- Cliquez sur Terminer.
- Dans la page Publier :
- Pour Configuration, sélectionnez l’icône de stylo afin de Modifier la configuration :
- Confirmez que la configuration Mise en production est sélectionnée.
- Dans la liste déroulante Mode de déploiement, sélectionnez Dépendant du framework.
- Dans la liste déroulante Runtime cible, sélectionnez le runtime souhaité. Par défaut, il s’agit de
win-x86
.
- Pour supprimer des fichiers supplémentaires au moment du déploiement, ouvrez Options de publication des fichiers, puis cochez la case permettant de supprimer les fichiers supplémentaires à l’emplacement de destination.
- Cliquez sur Enregistrer.
- Cliquez sur Publier.
- Pour Configuration, sélectionnez l’icône de stylo afin de Modifier la configuration :
Déployer l’application autonome
La publication d’une application en tant qu’application autonome produit un exécutable spécifique à une plateforme. Le dossier de publication de sortie contient tous les composants de l’application, y compris le runtime cible et les bibliothèques .NET. Pour plus d’informations, consultez [Publier une application autonome]dotnet/core/deploying/#publish-self-contained). Utilisez Visual Studio ou l’interface CLI .NET pour un déploiement autonome (SCD).
- Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Publier. Vous pouvez également sélectionner Build>Publier {Nom d’application} dans la barre d’outils de Visual Studio.
- Dans la boîte de dialogue Publier, sélectionnez Azure>Suivant.
- Sélectionnez le service Azure.
- Sélectionnez Avancé. La boîte de dialogue Publier s’ouvre.
- Sélectionnez un groupe de ressources et un plan d’hébergement, ou créez-en d’autres.
- Cliquez sur Terminer.
- Dans la page Publier :
- Pour Configuration, sélectionnez l’icône de stylo afin de Modifier la configuration :
- Confirmez que la configuration Mise en production est sélectionnée.
- Dans la liste déroulante Mode de déploiement, sélectionnez Autonome.
- Dans la liste déroulante Runtime cible, sélectionnez le runtime souhaité. Par défaut, il s’agit de
win-x86
.
- Pour supprimer des fichiers supplémentaires au moment du déploiement, ouvrez Options de publication des fichiers, puis cochez la case permettant de supprimer les fichiers supplémentaires à l’emplacement de destination.
- Cliquez sur Enregistrer.
- Cliquez sur Publier.
- Pour Configuration, sélectionnez l’icône de stylo afin de Modifier la configuration :
Paramètres de protocole (HTTPS)
Les liaisons de protocole sécurisé permettent de spécifier le certificat à utiliser pour répondre à des requêtes via HTTPS. La liaison nécessite un certificat privé valide (.pfx) émis pour le nom d’hôte spécifique. Pour plus d’informations, consultez Tutoriel : Lier un certificat SSL personnalisé existant à Azure App Service.
Transformer web.config
Si vous devez transformer web.config au moment de la publication (par exemple pour définir des variables d’environnement en fonction de la configuration, du profil ou de l’environnement), consultez Transformer web.config.
Ressources supplémentaires
- Vue d'ensemble d'App Service
- Présentation des diagnostics Azure App Service
- Hôte ASP.NET Core dans une batterie de serveurs web
- Tutoriel : Se connecter à SQL Database à partir d’App Service .NET sans secrets à l’aide d’une identité managée
Azure App Service sur Windows Server utilise IIS (Internet Information Services). Kestrel and YARP sur le front-end fournit l’équilibreur de charge. Les rubriques suivantes se rapportent à la technologie IIS sous-jacente :