Partilhar via


Hospede e implante ASP.NET Core Blazor

Observação

Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.

Advertência

Esta versão do ASP.NET Core não é mais suportada. Para obter mais informações, consulte a Política de suporte do .NET e .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.

Importante

Estas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui.

Para a versão atual, consulte a versão .NET 9 deste artigo.

Este artigo explica como hospedar e implantar aplicativos Blazor.

Publicar o aplicativo

As aplicações são publicadas para implantação na configuração de lançamento.

Observação

Publique uma solução hospedada Blazor WebAssembly do projeto Server.

  1. Selecione o comando Publish {APPLICATION} no menu Build, onde o {APPLICATION} representa o nome da aplicação.
  2. Selecione o destino de publicação . Para publicar localmente, selecione Pasta.
  3. Aceite o local padrão no campo Escolha uma pasta ou especifique um local diferente. Selecione o botão Publish.

A publicação da aplicação aciona uma restauração das dependências do projeto e compila o projeto antes de criar os recursos para a implantação. Como parte do processo de compilação, os métodos e assemblies não utilizados são removidos para reduzir o tamanho do download do aplicativo e os tempos de carregamento.

Locais de publicação padrão

  • Blazor Web App: O aplicativo é publicado na pasta /bin/Release/{TARGET FRAMEWORK}/publish, onde o espaço reservado para {TARGET FRAMEWORK} é a estrutura de destino. Implante o conteúdo da pasta publish no host.
  • Autônomo Blazor WebAssembly: o aplicativo é publicado na bin/Release/{TARGET FRAMEWORK}/publish pasta ou bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish . Para implantar o aplicativo como um site estático, copie o conteúdo da pasta wwwroot para o host do site estático.
  • Blazor Server: A aplicação é publicada na pasta /bin/Release/{TARGET FRAMEWORK}/publish, onde o espaço reservado para {TARGET FRAMEWORK} é o framework de destino. Implante o conteúdo da pasta publish no host.
  • Blazor WebAssembly
    • Autônomo: o aplicativo é publicado na /bin/Release/{TARGET FRAMEWORK}/publish pasta ou bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish . Para implantar o aplicativo como um site estático, copie o conteúdo da pasta wwwroot para o host do site estático.
    • Hospedado: o aplicativo Server ASP.NET Core e o aplicativo cliente Blazor WebAssembly são publicados na pasta /bin/Release/{TARGET FRAMEWORK}/publish do aplicativo do servidor, juntamente com quaisquer ativos web estáticos do aplicativo cliente. Implante o conteúdo da pasta publish no host.

IIS

Para hospedar um aplicativo Blazor no IIS, consulte os seguintes recursos:

Não há suporte para o compartilhamento de um pool de aplicativos entre aplicativos ASP.NET Core, inclusive para aplicativos Blazor. Use um pool de aplicativos por aplicativo ao hospedar com o IIS e evite o uso dos diretórios virtuais do IIS para hospedar vários aplicativos.

Um ou mais aplicativos hospedados por um aplicativo ASP.NET Core, conhecido comode solução de hospedada , são suportados para um pool de aplicativos. No entanto, não recomendamos nem damos suporte à atribuição de um único pool de aplicativos a várias soluções de Blazor WebAssembly hospedadas ou em cenários de hospedagem de subaplicativos.

Para obter mais informações sobre soluções , consulte Tooling for ASP.NET Core Blazor.

Blazor Server MapFallbackToPage configuração

Esta secção aplica-se apenas a aplicações Blazor Server. MapFallbackToPage não é suportado nas aplicações Blazor Web Appe Blazor WebAssembly.

Em cenários em que um aplicativo requer uma área separada com recursos personalizados e componentes Razor:

  • Crie uma pasta dentro da pasta Pages do aplicativo para armazenar os recursos. Por exemplo, uma seção de administrador de um aplicativo é criada em uma nova pasta chamada Admin (Pages/Admin).

  • Crie uma página raiz (_Host.cshtml) para a área. Por exemplo, crie um arquivo Pages/Admin/_Host.cshtml a partir da página raiz principal do aplicativo (Pages/_Host.cshtml). Não forneça uma diretiva @page na página Admin _Host.

  • Adicione um layout à pasta da área (por exemplo, Pages/Admin/_Layout.razor). No layout da área separada, defina a etiqueta <base>href para corresponder à pasta da área (por exemplo, <base href="/Admin/" />). Para fins de demonstração, adicione ~/ aos recursos estáticos na página. Por exemplo:

    • ~/css/bootstrap/bootstrap.min.css
    • ~/css/site.css
    • ~/BlazorSample.styles.css (o namespace do aplicativo de exemplo é BlazorSample)
    • ~/_framework/blazor.server.js Blazor( roteiro)
  • Se a área deve ter a sua própria pasta de ficheiros estáticos, adicione a pasta e especifique a sua localização ao Middleware de Ficheiro Estático em Program.cs (por exemplo, app.UseStaticFiles("/Admin/wwwroot")).

  • Os componentes Razor são adicionados na pasta da área. No mínimo, adicione um componente Index à pasta da área com a diretiva correta @page para a área. Por exemplo, adicione um arquivo Pages/Admin/Index.razor com base no arquivo Pages/Index.razor padrão do aplicativo. Indique a área Admin como o modelo de rota na parte superior do arquivo (@page "/admin"). Adicione componentes adicionais conforme necessário. Por exemplo, Pages/Admin/Component1.razor com uma diretiva @page e um modelo de rota de @page "/admin/component1.

  • No Program.cs, chame MapFallbackToPage para o caminho de solicitação da área imediatamente antes do caminho da página raiz de fallback para a página _Host:

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