Héberger et déployer ASP.NET CoreHost and deploy ASP.NET Core

En général, pour déployer une application ASP.NET Core sur un environnement d’hébergement :In general, to deploy an ASP.NET Core app to a hosting environment:

  • Déployer l’application publiée dans un dossier sur le serveur d’hébergement.Deploy the published app to a folder on the hosting server.
  • Configurer un gestionnaire de processus qui démarre l’application à l’arrivée des requêtes et redémarre l’application en cas de blocage ou quand le serveur redémarre.Set up a process manager that starts the app when requests arrive and restarts the app after it crashes or the server reboots.
  • Pour la configuration d’un proxy inverse, configurez un proxy inverse pour transférer les requêtes à l’application.For configuration of a reverse proxy, set up a reverse proxy to forward requests to the app.

Publier dans un dossierPublish to a folder

La commande dotnet publish compile le code d’application et copie les fichiers nécessaires pour exécuter l’application dans un dossier publish.The dotnet publish command compiles app code and copies the files required to run the app into a publish folder. Dans le cadre d’un déploiement à partir de Visual Studio, l’étape dotnet publish est effectuée automatiquement avant que les fichiers ne soient copiés vers la destination du déploiement.When deploying from Visual Studio, the dotnet publish step occurs automatically before the files are copied to the deployment destination.

Contenu du dossierFolder contents

Le dossier publish contient un ou plusieurs fichiers d’assembly d’application, ses dépendances et éventuellement le runtime .NET.The publish folder contains one or more app assembly files, dependencies, and optionally the .NET runtime.

Une application .NET Core peut être publiée en tant que déploiement autonome ou déploiement dépendant du framework.A .NET Core app can be published as self-contained deployment or framework-dependent deployment. Si l’application est autonome, les fichiers d’assembly qui contiennent le runtime .NET sont inclus dans le dossier publish.If the app is self-contained, the assembly files that contain the .NET runtime are included in the publish folder. Si l’application dépend du framework, les fichiers du runtime .NET ne sont pas inclus, car l’application a une référence à une version de .NET installée sur le serveur.If the app is framework-dependent, the .NET runtime files aren't included because the app has a reference to a version of .NET that's installed on the server. Le modèle de déploiement par défaut est « dépendante du framework ».The default deployment model is framework-dependent. Pour plus d’informations, consultez Déploiement d’applications .NET Core.For more information, see .NET Core application deployment.

En plus des fichiers .exe et .dll, le dossier publish d’une application ASP.NET Core contient généralement des fichiers de configuration, des ressources statiques et des vues MVC.In addition to .exe and .dll files, the publish folder for an ASP.NET Core app typically contains configuration files, static assets, and MVC views. Pour plus d'informations, consultez Structure de répertoires ASP.NET Core.For more information, see Structure de répertoires ASP.NET Core.

Configurer un gestionnaire de processusSet up a process manager

Une application ASP.NET Core est une application console qui doit être démarrée quand un serveur démarre, et redémarrée si elle se bloque.An ASP.NET Core app is a console app that must be started when a server boots and restarted if it crashes. Pour automatiser le démarrage et le redémarrage, un gestionnaire de processus est nécessaire.To automate starts and restarts, a process manager is required. Les gestionnaires de processus les plus courants pour ASP.NET Core sont les suivants :The most common process managers for ASP.NET Core are:

Configurer un proxy inverseSet up a reverse proxy

Si l’application utilise le serveur Kestrel, vous pouvez utiliser Nginx, Apache ou IIS comme serveur proxy inverse.If the app uses the Kestrel server, Nginx, Apache, or IIS can be used as a reverse proxy server. Un serveur proxy inverse reçoit les requêtes HTTP en provenance d’Internet et les transmet à Kestrel.A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel.

Les deux configurations, —avec ou sans serveur proxy inverse—, sont des configurations d’hébergement prises en charge.Either configuration—with or without a reverse proxy server—is a supported hosting configuration. Pour plus d’informations, consultez Quand utiliser Kestrel avec un proxy inverse ?.For more information, see When to use Kestrel with a reverse proxy.

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

Une configuration supplémentaire peut être nécessaire pour les applications hébergées derrière des serveurs proxy et des équilibreurs de charge.Additional configuration might be required for apps hosted behind proxy servers and load balancers. Sans configuration supplémentaire, une application peut ne pas avoir accès au schéma (HTTP/HTTPS) et à l’adresse IP distante d’où provient une requête.Without additional configuration, an app might not have access to the scheme (HTTP/HTTPS) and the remote IP address where a request originated. 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.

Utiliser Visual Studio et MSBuild pour automatiser les déploiementsUse Visual Studio and MSBuild to automate deployments

Le déploiement nécessite souvent des tâches supplémentaires en plus de la copie de la sortie de dotnet publish vers un serveur.Deployment often requires additional tasks besides copying the output from dotnet publish to a server. Par exemple, des fichiers supplémentaires peuvent être requis ou exclus du dossier publish.For example, extra files might be required or excluded from the publish folder. Visual Studio utilise MSBuild pour le déploiement web, et MSBuild peut être personnalisé pour effectuer de nombreuses autres tâches pendant le déploiement.Visual Studio uses MSBuild for web deployment, and MSBuild can be customized to do many other tasks during deployment. Pour plus d’informations, consultez Profils de publication Visual Studio pour le déploiement d’applications ASP.NET Core et l’ouvrage Using MSBuild and Team Foundation Build (Utilisation de MSBuild et Team Foundation Build).For more information, see Profils de publication Visual Studio pour le déploiement d’applications ASP.NET Core and the Using MSBuild and Team Foundation Build book.

Les applications peuvent être déployées directement à partir de Visual Studio sur Azure App Service à l’aide de la fonctionnalité de publication web ou de la prise en charge intégrée de Git.By using the Publish Web feature or built-in Git support, apps can be deployed directly from Visual Studio to the Azure App Service. Azure DevOps Services prend en charge le déploiement continu sur Azure App Service.Azure DevOps Services supports continuous deployment to Azure App Service. Pour plus d’informations, consultez DevOps avec ASP.NET Core et Azure.For more information, see DevOps with ASP.NET Core and Azure.

Publier sur AzurePublish to Azure

Consultez Publier une application ASP.NET Core sur Azure avec Visual Studio pour obtenir des instructions sur la façon de publier une application sur Azure à l’aide de Visual Studio.See Publier une application ASP.NET Core sur Azure avec Visual Studio for instructions on how to publish an app to Azure using Visual Studio. Un exemple supplémentaire est fourni par Créer une application web ASP.NET Core dans Azure.An additional example is provided by Create an ASP.NET Core web app in Azure.

Publier avec MSDeploy sur WindowsPublish with MSDeploy on Windows

Consultez Profils de publication Visual Studio pour le déploiement d’applications ASP.NET Core pour obtenir des instructions sur la publication d’une application avec un profil de publication Visual Studio, notamment à partir d’une invite de commandes Windows à l’aide de la commande dotnet msbuild.See Profils de publication Visual Studio pour le déploiement d’applications ASP.NET Core for instructions on how to publish an app with a Visual Studio publish profile, including from a Windows command prompt using the dotnet msbuild command.

Héberger dans une batterie de serveurs webHost in a web farm

Pour plus d’informations sur la configuration pour héberger des applications ASP.NET Core dans un environnement de batterie de serveurs web (par exemple, le déploiement de plusieurs instances de votre application pour la scalabilité), consultez Héberger ASP.NET Core dans une batterie de serveurs web.For information on configuration for hosting ASP.NET Core apps in a web farm environment (for example, deployment of multiple instances of your app for scalability), see Héberger ASP.NET Core dans une batterie de serveurs web.

Effectuer des contrôles d’intégritéPerform health checks

Utilisez Health Check Middleware pour effectuer des contrôles d’intégrité sur une application et ses dépendances.Use Health Check Middleware to perform health checks on an app and its dependencies. Pour plus d'informations, consultez Contrôles d’intégrité dans ASP.NET Core.For more information, see Contrôles d’intégrité dans ASP.NET Core.

Ressources supplémentairesAdditional resources