Partager via


Héberger et déployer ASP.NET Core Blazor

Remarque

Ceci n’est pas la dernière version de cet article. Pour la version actuelle, consultez la version .NET 9 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 support .NET et .NET Core. Pour la version actuelle, consultez la version .NET 9 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 9 de cet article.

Cet article explique comment héberger et déployer des applications Blazor.

Publier l’application

Les applications sont publiées pour le déploiement dans la configuration Release.

Remarque

Publiez une Blazor WebAssembly hébergée à partir du projet Server.

  1. Sélectionnez la commande Publier {APPLICATION} dans le menu Générer, où l’espace réservé {APPLICATION} est le nom de l’application.
  2. Sélectionnez l’onglet Cible de publication. Pour publier localement, sélectionnez Dossier.
  3. Acceptez l’emplacement par défaut dans le champ Choisir un dossier ou spécifiez un autre emplacement. Sélectionnez le bouton Publish.

La publication de l’application déclenche une restauration des dépendances du projet et crée le projet avant de créer les ressources pour le déploiement. Dans le cadre du processus de génération, les assemblys et méthodes inutilisés sont supprimés pour réduire la durée du chargement et la taille du téléchargement de l’application.

Emplacements de publication par défaut

  • Blazor Web App: L'application est publiée dans le dossier /bin/Release/{TARGET FRAMEWORK}/publish, où le placeholder {TARGET FRAMEWORK} est le framework cible. Déployez le contenu du dossier publish sur l’hôte.
  • Autonome Blazor WebAssembly : l'application est publiée dans le dossier bin/Release/{TARGET FRAMEWORK}/publish ou bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish. Pour déployer l’application en tant que site statique, copiez le contenu du dossier wwwroot sur l’hôte de site statique.
  • Blazor Server : L'application est publiée dans le dossier /bin/Release/{TARGET FRAMEWORK}/publish, où le caractère générique {TARGET FRAMEWORK} est le framework cible... Déployez le contenu du dossier publish sur l’hôte.
  • Blazor WebAssembly
    • Autonome : l’application est publiée dans le /bin/Release/{TARGET FRAMEWORK}/publish ou bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish dossier. Pour déployer l’application en tant que site statique, copiez le contenu du dossier wwwroot sur l’hôte de site statique.
    • Hébergé : l’application serveur ASP.NET Core et l’application cliente Blazor WebAssembly sont publiées dans le /bin/Release/{TARGET FRAMEWORK}/publish dossier de l’application serveur, ainsi que toutes les ressources web statiques de l’application cliente. Déployez le contenu du dossier publish sur l’hôte.

IIS

Pour héberger une application Blazor dans IIS, consultez les ressources suivantes :

Le partage d’un pool d’applications entre des applications ASP.NET Core n’est pas pris en charge, y compris pour les applications Blazor. Utilisez un pool d’applications par application lors de l’hébergement avec IIS et évitez d’utiliser les répertoires virtuels d’IIS pour héberger plusieurs applications.

Une ou plusieurs applications Blazor WebAssembly hébergées par une application ASP.NET Core, appelée solution Blazor WebAssembly hébergée, sont prises en charge pour un pool d’applications. Toutefois, nous ne recommandons pas et ne prenons pas en charge l’attribution d’un pool d’applications unique à plusieurs solutions Blazor WebAssembly hébergées ou dans des scénarios d’hébergement de sous-applications.

Pour plus d’informations sur les solutions, consultez Outils pour ASP.NET Core Blazor.

Configuration Blazor ServerMapFallbackToPage

Cette section s’applique uniquement aux applications Blazor Server. MapFallbackToPage n’est pas pris en charge dans les Blazor Web App et les applications Blazor WebAssembly.

Dans les scénarios où une application nécessite une zone distincte avec des ressources et des composants Razor personnalisés :

  • Créez un dossier dans le dossier Pages de l’application pour y placer les ressources. Par exemple, une section d’administrateur d’une application est créée dans un nouveau dossier nommé Admin (Pages/Admin).

  • Créez une page racine (_Host.cshtml) pour la zone. Par exemple, créez un fichier Pages/Admin/_Host.cshtml à partir de la page racine principale de l’application (Pages/_Host.cshtml). Ne fournissez pas de directive @page dans la page _Host d’administration.

  • Ajoutez une disposition au dossier de la zone (par exemple, Pages/Admin/_Layout.razor). Dans la disposition de la zone distincte, définissez l’étiquette <base>href pour qu’elle corresponde au dossier de la zone (par exemple, <base href="/Admin/" />). À des fins de démonstration, ajoutez ~/ aux ressources statiques dans la page. Par exemple :

    • ~/css/bootstrap/bootstrap.min.css
    • ~/css/site.css
    • ~/BlazorSample.styles.css (l’espace de noms de l’exemple d’application est BlazorSample)
    • ~/_framework/blazor.server.js (script Blazor)
  • Si la zone doit avoir son propre dossier de ressources statiques, ajoutez le dossier et spécifiez son emplacement sur Middleware de fichiers statiques dans Program.cs (par exemple, app.UseStaticFiles("/Admin/wwwroot")).

  • Les composants Razor sont ajoutés dans le dossier de la zone. Au minimum, ajoutez un composant Index au dossier de zone avec la directive @page correcte pour cette zone. Par exemple, ajoutez un fichier Pages/Admin/Index.razor en fonction du fichier Pages/Index.razor par défaut de l’application. Indiquez la zone Administration comme modèle de route en haut du fichier (@page "/admin"). Ajoutez des composants supplémentaires si nécessaire. Par exemple, Pages/Admin/Component1.razor avec une directive @page et un modèle de route @page "/admin/component1.

  • Dans Program.cs, appelez MapFallbackToPage pour le chemin de demande de la zone immédiatement avant le chemin de la page racine de secours vers la page _Host :

    ...
    app.UseRouting();
    
    app.MapBlazorHub();
    app.MapFallbackToPage("~/Admin/{*clientroutes:nonfile}", "/Admin/_Host");
    app.MapFallbackToPage("/_Host");
    
    app.Run();