Héberger et déployer ASP.NET Core

En général, pour déployer une application ASP.NET Core sur un environnement d’hébergement :

  • Déployer l’application publiée dans un dossier sur le serveur d’hébergement.
  • 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.
  • Pour la configuration d’un proxy inverse, configurez un proxy inverse pour transférer les requêtes à l’application.

Publier dans un dossier

La commande dotnet publish compile le code d’application et copie les fichiers nécessaires pour exécuter l’application dans un dossier publish. 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.

Exécuter l’application publiée localement

Pour exécuter l’application publiée localement, exécutez dotnet <ApplicationName>.dll à partir du dossier de publication .

Publier des fichiers de paramètres

Les fichiers *.json sont publiés par défaut. Pour publier d’autres fichiers de paramètres, spécifiez-les dans un élément <ItemGroup><Content Include= ... /> du fichier projet. L’exemple suivant publie des fichiers XML :

<ItemGroup>
  <Content Include="**\*.xml" Exclude="bin\**\*;obj\**\*"
    CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

Contenu du dossier

Le dossier publish contient un ou plusieurs fichiers d’assembly d’application, ses dépendances et éventuellement le runtime .NET.

Une application .NET Core peut être publiée en tant que déploiement autonome ou déploiement dépendant du framework. Si l’application est autonome, les fichiers d’assembly qui contiennent le runtime .NET sont inclus dans le dossier publish. 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. Le modèle de déploiement par défaut est « dépendante du framework ». Pour plus d’informations, consultez Déploiement d’applications .NET Core.

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. Pour plus d’informations, consultez Structure de répertoires ASP.NET Core.

Configurer un gestionnaire de processus

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. Pour automatiser le démarrage et le redémarrage, un gestionnaire de processus est nécessaire. Les gestionnaires de processus les plus courants pour ASP.NET Core sont les suivants :

Configurer un proxy inverse

Si l’application utilise le serveur Kestrel, vous pouvez employer Nginx, Apache ou IIS en tant que serveur proxy inverse. Un serveur proxy inverse reçoit les requêtes HTTP en provenance d’Internet et les transmet à Kestrel.

Les deux configurations, avec ou sans serveur proxy inverse, sont des configurations d’hébergement prises en charge. Pour plus d’informations, consultez Quand utiliser Kestrel avec un proxy inverse.

Les deux configurations, avec ou sans serveur proxy inverse, sont des configurations d’hébergement prises en charge. Pour plus d’informations, consultez Quand utiliser Kestrel avec un proxy inverse.

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

Une configuration supplémentaire peut être nécessaire pour les applications hébergées derrière des serveurs proxy et des équilibreurs de charge. 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. Pour plus d’informations, consultez l’article Configurer ASP.NET Core pour l’utilisation de serveurs proxy et d’équilibreurs de charge.

Utiliser Visual Studio et MSBuild pour automatiser les déploiements

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. Par exemple, des fichiers supplémentaires peuvent être requis ou exclus du dossier publish. Visual Studio utilise MSBuild pour le déploiement web. Vous pouvez personnaliser MSBuild pour effectuer de nombreuses autres tâches durant le déploiement. Pour plus d’informations, consultez Profils de publication Visual Studio (.pubxml) pour le déploiement d’applications ASP.NET Core ainsi que l’ouvrage Using MSBuild and Team Foundation Build.

À l’aide de la fonctionnalité de publication web, vous pouvez déployer les applications directement à partir de Visual Studio sur Azure App Service. Azure DevOps Services prend en charge le déploiement continu sur Azure App Service. Pour plus d’informations, consultez DevOps pour les développeurs ASP.NET Core.

Publier sur Azure

Pour obtenir les instructions relatives à la publication d’une application sur Azure à l’aide de Visual Studio, consultez Publier une application ASP.NET Core sur Azure avec Visual Studio. Un exemple supplémentaire est fourni par Créer une application web ASP.NET Core dans Azure.

Publier avec MSDeploy sur Windows

Pour obtenir des instructions sur la publication d’une application avec un profil de publication Visual Studio, en utilisant notamment la commande dotnet msbuild à partir d’une invite de commandes Windows, consultez Profils de publication Visual Studio (.pubxml) pour le déploiement d’applications ASP.NET Core.

Internet Information Services (IIS)

Pour les déploiements sur Internet Information Services (IIS) avec une configuration fournie par le fichier web.config, consultez les articles sous Héberger ASP.NET Core sur Windows avec IIS.

Héberger dans une batterie de serveurs web

Pour plus d’informations sur la configuration de l’hébergement des applications ASP.NET Core dans un environnement de batterie de serveurs web (par exemple le déploiement de plusieurs instances de votre application à des fins de scalabilité), consultez Héberger ASP.NET Core dans une batterie de serveurs web.

Héberger sur Docker

Pour plus d’informations, consultez Héberger ASP.NET Core dans des conteneurs Docker.

Effectuer des contrôles d’intégrité

Utilisez Health Check Middleware pour effectuer des contrôles d’intégrité sur une application et ses dépendances. Pour plus d’informations, consultez Contrôles d’intégrité dans ASP.NET Core.

Ressources supplémentaires

En général, pour déployer une application ASP.NET Core sur un environnement d’hébergement :

  • Déployer l’application publiée dans un dossier sur le serveur d’hébergement.
  • 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.
  • Pour la configuration d’un proxy inverse, configurez un proxy inverse pour transférer les requêtes à l’application.

Publier dans un dossier

La commande dotnet publish compile le code d’application et copie les fichiers nécessaires pour exécuter l’application dans un dossier publish. 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.

Contenu du dossier

Le dossier publish contient un ou plusieurs fichiers d’assembly d’application, ses dépendances et éventuellement le runtime .NET.

Une application .NET Core peut être publiée en tant que déploiement autonome ou déploiement dépendant du framework. Si l’application est autonome, les fichiers d’assembly qui contiennent le runtime .NET sont inclus dans le dossier publish. 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. Le modèle de déploiement par défaut est « dépendante du framework ». Pour plus d’informations, consultez Déploiement d’applications .NET Core.

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. Pour plus d’informations, consultez Structure de répertoires ASP.NET Core.

Configurer un gestionnaire de processus

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. Pour automatiser le démarrage et le redémarrage, un gestionnaire de processus est nécessaire. Les gestionnaires de processus les plus courants pour ASP.NET Core sont les suivants :

Configurer un proxy inverse

Si l’application utilise le serveur Kestrel, vous pouvez employer Nginx, Apache ou IIS en tant que serveur proxy inverse. Un serveur proxy inverse reçoit les requêtes HTTP en provenance d’Internet et les transmet à Kestrel.

Les deux configurations, avec ou sans serveur proxy inverse, sont des configurations d’hébergement prises en charge. Pour plus d’informations, consultez Quand utiliser Kestrel avec un proxy inverse.

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

Une configuration supplémentaire peut être nécessaire pour les applications hébergées derrière des serveurs proxy et des équilibreurs de charge. 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. Pour plus d’informations, consultez l’article Configurer ASP.NET Core pour l’utilisation de serveurs proxy et d’équilibreurs de charge.

Utiliser Visual Studio et MSBuild pour automatiser les déploiements

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. Par exemple, des fichiers supplémentaires peuvent être requis ou exclus du dossier publish. Visual Studio utilise MSBuild pour le déploiement web. Vous pouvez personnaliser MSBuild pour effectuer de nombreuses autres tâches durant le déploiement. Pour plus d’informations, consultez Profils de publication Visual Studio (.pubxml) pour le déploiement d’applications ASP.NET Core ainsi que l’ouvrage Using MSBuild and Team Foundation Build.

À l’aide de la fonctionnalité de publication web, vous pouvez déployer les applications directement à partir de Visual Studio sur Azure App Service. Azure DevOps Services prend en charge le déploiement continu sur Azure App Service. Pour plus d’informations, consultez DevOps pour les développeurs ASP.NET Core.

Publier sur Azure

Pour obtenir les instructions relatives à la publication d’une application sur Azure à l’aide de Visual Studio, consultez Publier une application ASP.NET Core sur Azure avec Visual Studio. Un exemple supplémentaire est fourni par Créer une application web ASP.NET Core dans Azure.

Publier avec MSDeploy sur Windows

Pour obtenir des instructions sur la publication d’une application avec un profil de publication Visual Studio, en utilisant notamment la commande dotnet msbuild à partir d’une invite de commandes Windows, consultez Profils de publication Visual Studio (.pubxml) pour le déploiement d’applications ASP.NET Core.

Internet Information Services (IIS)

Pour les déploiements sur Internet Information Services (IIS) avec une configuration fournie par le fichier web.config, consultez les articles sous Héberger ASP.NET Core sur Windows avec IIS.

Héberger dans une batterie de serveurs web

Pour plus d’informations sur la configuration de l’hébergement des applications ASP.NET Core dans un environnement de batterie de serveurs web (par exemple le déploiement de plusieurs instances de votre application à des fins de scalabilité), consultez Héberger ASP.NET Core dans une batterie de serveurs web.

Héberger sur Docker

Pour plus d’informations, consultez Héberger ASP.NET Core dans des conteneurs Docker.

Ressources supplémentaires