Déployer des applications ASP.NET Core sur Azure App ServiceDeploy ASP.NET Core apps to 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.Azure App Service is a Microsoft cloud computing platform service for hosting web apps, including ASP.NET Core.

Ressources utilesUseful resources

App Service Documentation héberge la documentation, les tutoriels, les exemples, les guides pratiques et d’autres ressources Azure.App Service Documentation is the home for Azure Apps documentation, tutorials, samples, how-to guides, and other resources. Voici deux didacticiels importants qui abordent l’hébergement d’applications ASP.NET Core :Two notable tutorials that pertain to hosting ASP.NET Core apps are:

Créer une application web ASP.NET Core dans AzureCreate an ASP.NET Core web app in Azure
Utilisez Visual Studio pour créer et déployer une application web ASP.NET Core dans Azure App Service sur Windows.Use Visual Studio to create and deploy an ASP.NET Core web app to Azure App Service on Windows.

Créer une application ASP.NET Core dans App Service sur LinuxCreate an ASP.NET Core app in App Service on Linux
Utilisez la ligne de commande pour créer et déployer une application web ASP.NET Core dans Azure App Service sur Linux.Use the command line to create and deploy an ASP.NET Core web app to Azure App Service on Linux.

Les articles suivants sont disponibles dans la documentation d’ASP.NET Core :The following articles are available in ASP.NET Core documentation:

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.Learn how to publish an ASP.NET Core app to Azure App Service using Visual Studio.

Déploiement continu sur Azure avec Visual Studio et Git avec ASP.NET Core
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.Learn how to create an ASP.NET Core web app using Visual Studio and deploy it to Azure App Service using Git for continuous deployment.

Créer votre premier pipelineCreate your first pipeline
Configurez une build CI pour une application ASP.NET Core, puis créez une version de déploiement continu sur Azure App Service.Set up a CI build for an ASP.NET Core app, then create a continuous deployment release to Azure App Service.

Bac à sable Azure Web AppAzure Web App sandbox
Découvrez les limitations d’exécution du runtime Azure App Service appliquées par la plateforme Azure Apps.Discover Azure App Service runtime execution limitations enforced by the Azure Apps platform.

Configuration d’applicationApplication configuration

PlateformePlatform

Des runtimes pour les applications 64 bits (x64) et 32 bits (x 86) sont présents sur Azure App Service.Runtimes for 64-bit (x64) and 32-bit (x86) apps are present on Azure App Service. Le SDK .NET Core disponible sur App Service est 32 bits, mais vous pouvez déployer des applications 64 bits à l’aide de la console Kudu ou via MSDeploy avec un profil de publication Visual Studio ou une commande CLI.The .NET Core SDK available on App Service is 32-bit, but you can deploy 64-bit apps using the Kudu console or via MSDeploy with a Visual Studio publish profile or CLI command.

Concernant les applications avec des dépendances natives, des runtimes pour les applications 32 bits (x86) sont présents sur Azure App Service.For apps with native dependencies, runtimes for 32-bit (x86) apps are present on Azure App Service. Le SDK .NET Core disponible sur App Service est 32 bits.The .NET Core SDK available on App Service is 32-bit.

PackagesPackages

Ajoutez les packages NuGet suivants pour fournir des fonctionnalités de journalisation automatique aux applications déployées sur Azure App Service :Include the following NuGet packages to provide automatic logging features for apps deployed to Azure App Service:

Les packages précédents ne sont pas disponibles dans le métapackage Microsoft.AspNetCore.App.The preceding packages aren't available from the Microsoft.AspNetCore.App metapackage. 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.Apps that target .NET Framework or reference the Microsoft.AspNetCore.App metapackage must explicitly reference the individual packages in the app's project file.

Remplacer la configuration de l’application à l’aide du Portail AzureOverride app configuration using the Azure Portal

Les paramètres d’application dans le portail Azure vous permettent de définir des variables d’environnement pour l’application.App settings in the Azure Portal permit you to set environment variables for the app. Celles-ci peuvent être utilisées par le Fournisseur de configuration des variables d’environnement.Environment variables can be consumed by the Environment Variables Configuration Provider.

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.When an app setting is created or modified in the Azure Portal and the Save button is selected, the Azure App is restarted. La variable d’environnement est à la disposition de l’application après le redémarrage du service.The environment variable is available to the app after the service restarts.

Quand une application utilise l’Hôte générique, les variables d’environnement ne sont par défaut pas chargées dans une configuration de l’application ; le fournisseur de configuration doit être ajouté par le développeur.When an app uses the Generic Host, environment variables aren't loaded into an app's configuration by default and the configuration provider must be added by the developer. Ce dernier détermine le préfixe de variable d’environnement lors de l’ajout du fournisseur de configuration.The developer determines the environment variable prefix when the configuration provider is added. Pour plus d’informations, voir Hôte générique .NET et Fournisseur de configuration des variables d’environnement.For more information, see Hôte générique .NET and the Environment Variables Configuration Provider.

Quand une application génère l’hôte via WebHost.CreateDefaultBuilder, les variables d’environnement qui permettent de configurer l’hôte utilisent le préfixe ASPNETCORE_.When an app builds the host using WebHost.CreateDefaultBuilder, environment variables that configure the host use the ASPNETCORE_ prefix. Pour plus d’informations, voir Hôte web ASP.NET Core et Fournisseur de configuration des variables d’environnement.For more information, see Hôte web ASP.NET Core and the Environment Variables Configuration Provider.

Scénarios avec un serveur proxy et un équilibreur de chargeProxy server and load balancer scenarios

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.The IIS Integration Middleware, which configures Forwarded Headers Middleware when hosting out-of-process, and the ASP.NET Core Module are configured to forward the scheme (HTTP/HTTPS) and the remote IP address where the request originated. 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.Additional configuration might be required for apps hosted behind additional proxy servers and load balancers. Pour plus d’informations, consultez Configurer ASP.NET Core pour l’utilisation de serveurs proxy et d’équilibreurs de charge.For more information, see Configure ASP.NET Core to work with proxy servers and load balancers.

Surveillance et journalisationMonitoring and logging

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.ASP.NET Core apps deployed to App Service automatically receive an App Service extension, ASP.NET Core Logging Integration. L’extension permet d’intégrer la journalisation dans les applications ASP.NET Core sur Azure App Service.The extension enables logging integration for ASP.NET Core apps on 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.ASP.NET Core apps deployed to App Service automatically receive an App Service extension, ASP.NET Core Logging Extensions. L’extension permet d’intégrer la journalisation dans les applications ASP.NET Core sur Azure App Service.The extension enables logging integration for ASP.NET Core apps on Azure App Service.

Pour des informations de surveillance, de journalisation et de dépannage, consultez les articles suivants :For monitoring, logging, and troubleshooting information, see the following articles:

Superviser des applications dans Azure App ServiceMonitor apps in Azure App Service
Découvrez comment consulter les quotas et les métriques des applications et des plans App Service.Learn how to review quotas and metrics for apps and App Service plans.

Activer la journalisation des diagnostics pour les applications dans Azure App ServiceEnable diagnostics logging for apps in 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.Discover how to enable and access diagnostic logging for HTTP status codes, failed requests, and web server activity.

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.Understand common approaches to handling errors in ASP.NET Core apps.

<xref:host-and-deploy/azure-apps/troubleshoot>
Découvrez comment diagnostiquer les problèmes de déploiements Azure App Service avec les applications ASP.NET Core.Learn how to diagnose issues with Azure App Service deployments with ASP.NET Core apps.

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.See the common deployment configuration errors for apps hosted by Azure App Service/IIS with troubleshooting advice.

Porte-clés de Protection des données et emplacements de déploiementData Protection key ring and deployment slots

Les clés de Protection des données sont persistantes dans le dossier %HOME%\ASP.NET\DataProtection-Keys.Data Protection keys are persisted to the %HOME%\ASP.NET\DataProtection-Keys folder. Ce dossier est alimenté par le stockage réseau et synchronisé sur tous les ordinateurs hébergeant l’application.This folder is backed by network storage and is synchronized across all machines hosting the app. Les clés ne sont pas protégées au repos.Keys aren't protected at rest. Ce dossier fournit le porte-clés à toutes les instances d’une application dans un seul emplacement de déploiement.This folder supplies the key ring to all instances of an app in a single deployment slot. Les emplacements de déploiement distincts, tels que Préproduction et Production, ne partagent pas de porte-clés.Separate deployment slots, such as Staging and Production, don't share a key ring.

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.When swapping between deployment slots, any system using data protection won't be able to decrypt stored data using the key ring inside the previous slot. L’intergiciel (middleware) ASP.NET Cookie utilise la protection des données pour protéger ses cookies.ASP.NET Cookie Middleware uses data protection to protect its cookies. Cela entraîne la déconnexion des utilisateurs des applications qui utilisent l’intergiciel ASP.NET Cookie standard.This leads to users being signed out of an app that uses the standard ASP.NET Cookie Middleware. Pour une solution de porte-clés indépendante de l’emplacement, utilisez un fournisseur de porte-clés externe, tel que :For a slot-independent key ring solution, use an external key ring provider, such as:

  • Stockage Blob AzureAzure Blob Storage
  • Azure Key VaultAzure Key Vault
  • Magasin SQLSQL store
  • Cache RedisRedis cache

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

Déployer la version préliminaire d’ASP.NET Core sur Azure App ServiceDeploy ASP.NET Core preview release to Azure App Service

Utilisez l'une des approches suivantes :Use one of the following approaches:

Installer l’extension de site de version PreviewInstall the preview site extension

Si un problème se produit avec l’extension de site en préversion, ouvrez un problème aspnet/AspNetCore.If a problem occurs using the preview site extension, open an aspnet/AspNetCore issue.

  1. Dans le portail Azure, accédez à App Service.From the Azure Portal, navigate to the App Service.
  2. Sélectionnez l’application web.Select the web app.
  3. Tapez « ex » dans la zone de recherche pour filtrer sur les « Extensions » ou faites défiler la liste outils de gestion.Type "ex" in the search box to filter for "Extensions" or scroll down the list of management tools.
  4. Sélectionner Extensions.Select Extensions.
  5. Sélectionnez Ajouter.Select Add.
  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.Select the ASP.NET Core {X.Y} ({x64|x86}) Runtime extension from the list, where {X.Y} is the ASP.NET Core preview version and {x64|x86} specifies the platform.
  7. Sélectionnez OK pour accepter les conditions légales.Select OK to accept the legal terms.
  8. Sélectionnez OK pour installer l’extension.Select OK to install the extension.

Une fois l’opération effectuée, la dernière préversion de .NET Core est installée.When the operation completes, the latest .NET Core preview is installed. Vérifiez l’installation :Verify the installation:

  1. Sélectionnez Outils avancés.Select Advanced Tools.

  2. Sélectionnez Go dans Outils avancés.Select Go in Advanced Tools.

  3. Sélectionnez l’élément de menu Console de débogage > PowerShell.Select the Debug console > PowerShell menu item.

  4. À l’invite PowerShell, exécutez la commande suivante.At the PowerShell prompt, execute the following command. Remplacez {X.Y} par la version du runtime ASP.NET Core et {PLATFORM} par la plateforme dans la commande :Substitute the ASP.NET Core runtime version for {X.Y} and the platform for {PLATFORM} in the command:

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

    La commande retourne True quand le runtime de la préversion x64 est installée.The command returns True when the x64 preview runtime is installed.

Notes

L’architecture de 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 une instance de calcul de série A ou supérieure.The platform architecture (x86/x64) of an App Services app is set in the app's settings in the Azure Portal for apps that are hosted on an A-series compute or better hosting tier. 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.If the app is run in in-process mode and the platform architecture is configured for 64-bit (x64), the ASP.NET Core Module uses the 64-bit preview runtime, if present. Installez l’extension ASP.NET Core {X.Y} (x64) Runtime.Install the ASP.NET Core {X.Y} (x64) Runtime extension.

Après avoir installé le runtime de la préversion x64, exécutez la commande suivante dans la fenêtre Commande Kudu PowerShell pour vérifier l’installation.After installing the x64 preview runtime, run the following command in the Kudu PowerShell command window to verify the installation. Remplacez {X.Y} par la version du runtime ASP.NET Core dans la commande :Substitute the ASP.NET Core runtime version for {X.Y} in the command:

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

La commande retourne True quand le runtime de la préversion x64 est installée.The command returns True when the x64 preview runtime is installed.

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.ASP.NET Core Extensions enables additional functionality for ASP.NET Core on Azure App Services, such as enabling Azure logging. L’extension est installée automatiquement quand vous effectuez le déploiement à partir de Visual Studio.The extension is installed automatically when deploying from Visual Studio. Si l’extension n’est pas installée, installez-la pour l’application.If the extension isn't installed, install it for the app.

Utiliser l’extension de site de la version Preview avec un modèle ARMUse the preview site extension with an ARM template

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.If an ARM template is used to create and deploy apps, the siteextensions resource type can be used to add the site extension to a web app. Par exemple :For example:

{
    "type": "siteextensions",
    "name": "AspNetCoreRuntime",
    "apiVersion": "2015-04-01",
    "location": "[resourceGroup().location]",
    "properties": {
        "version": "[parameters('aspnetcoreVersion')]"
    },
    "dependsOn": [
        "[resourceId('Microsoft.Web/Sites', parameters('siteName'))]"
    ]
}

Déployer l’application autonomeDeploy the app self-contained

Un déploiement autonome (SCD) qui cible une préversion runtime exécute le runtime de la préversion dans le déploiement.A self-contained deployment (SCD) that targets a preview runtime carries the preview runtime in the deployment.

Pendant le déploiement d’une application autonome :When deploying a self-contained app:

Publier à partir de Visual StudioPublish from Visual Studio

  1. Sélectionnez Build > Publier {nom de l’application} à partir de la barre d’outils de Visual Studio.Select Build > Publish {Application Name} from the Visual Studio toolbar.
  2. Dans la boîte de dialogue Choisir une cible de publication, confirmez qu’App Service est sélectionné.In the Pick a publish target dialog, confirm that App Service is selected.
  3. Sélectionnez Avancé.Select Advanced. La boîte de dialogue Publier s’ouvre.The Publish dialog opens.
  4. Dans la boîte de dialogue Publier :In the Publish dialog:
    • Confirmez que la configuration Mise en production est sélectionnée.Confirm that the Release configuration is selected.
    • Ouvrez la liste déroulante Mode de déploiement et sélectionnez Autonome.Open the Deployment Mode drop-down list and select Self-Contained.
    • Sélectionnez le runtime cible à partir de la liste déroulante Runtime cible.Select the target runtime from the Target Runtime drop-down list. La valeur par défaut est win-x86.The default is 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.If you need to remove additional files upon deployment, open File Publish Options and select the check box to remove additional files at the destination.
    • Sélectionnez Enregistrer.Select Save.
  5. Créez un nouveau site ou mettez à jour un site existant en suivant les autres invites de l'Assistant de publication.Create a new site or update an existing site by following the remaining prompts of the publish wizard.

Publiez à l'aide d'outils d'interface de ligne de commande (CLI)Publish using command-line interface (CLI) tools

  1. Dans le fichier projet, spécifiez un ou plusieurs identificateurs de runtime (RID).In the project file, specify one or more Runtime Identifiers (RIDs). Utilisez <RuntimeIdentifier> (singulier) pour un seul RID, ou <RuntimeIdentifiers> (pluriel) pour fournir une liste de RID délimitée par des points-virgules.Use <RuntimeIdentifier> (singular) for a single RID, or use <RuntimeIdentifiers> (plural) to provide a semicolon-delimited list of RIDs. Dans l’exemple suivant, le RID win-x86 est spécifié :In the following example, the win-x86 RID is specified:

    <PropertyGroup>
      <TargetFramework>netcoreapp2.1</TargetFramework>
      <RuntimeIdentifier>win-x86</RuntimeIdentifier>
    </PropertyGroup>
    
  2. A partir d'un interpréteur de commandes, publiez l'application dans la configuration Mise en production pour le runtime de l'hôte avec la commande dotnet publish.From a command shell, publish the app in Release configuration for the host's runtime with the dotnet publish command. Dans l’exemple suivant, l’application est publiée pour le RID win-x86.In the following example, the app is published for the win-x86 RID. Le RID fourni à l’option --runtime doit être fourni dans la propriété <RuntimeIdentifier> (ou <RuntimeIdentifiers>) du fichier projet.The RID supplied to the --runtime option must be provided in the <RuntimeIdentifier> (or <RuntimeIdentifiers>) property in the project file.

    dotnet publish --configuration Release --runtime win-x86
    
  3. Déplacez le contenu du répertoire bin/Release/{TARGET FRAMEWORK}/{RUNTIME IDENTIFIER}/publish vers le site dans App Service.Move the contents of the bin/Release/{TARGET FRAMEWORK}/{RUNTIME IDENTIFIER}/publish directory to the site in App Service.

Utiliser Docker avec Web Apps pour conteneursUse Docker with Web Apps for containers

Docker Hub contient les dernières images de Docker en préversion.The Docker Hub contains the latest preview Docker images. Les images peuvent être utilisées comme images de base.The images can be used as a base image. Utilisez l’image pour effectuer un déploiement sur Web Apps pour conteneurs normalement.Use the image and deploy to Web Apps for Containers normally.

Paramètres de protocole (HTTPS)Protocol settings (HTTPS)

Les liaisons de protocole sécurisées permettent de spécifier un certificat à utiliser pour répondre à des requêtes sur HTTPS.Secure protocol bindings allow you specify a certificate to use when responding to requests over HTTPS. La liaison nécessite un certificat privé valide ( .pfx) émis pour le nom d’hôte spécifique.Binding requires a valid private certificate (.pfx) issued for the specific hostname. Pour plus d'informations, consultez le Tutoriel : Lier un certificat SSL personnalisé existant à Azure App Service.For more information, see Tutorial: Bind an existing custom SSL certificate to Azure App Service.

Transformer web.configTransform 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.If you need to transform web.config on publish (for example, set environment variables based on the configuration, profile, or environment), see Transformer web.config.

Ressources supplémentairesAdditional resources

Azure App Service sur Windows Server utilise IIS (Internet Information Services).Azure App Service on Windows Server uses Internet Information Services (IIS). Les rubriques suivantes se rapportent à la technologie IIS sous-jacente :The following topics pertain to the underlying IIS technology: