Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Esta não é a versão mais recente deste artigo. Para informações sobre a versão vigente, confira a versão .NET 9 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte a Política de Suporte do .NET e do .NET Core. Para informações sobre a versão vigente, confira a versão .NET 9 deste artigo.
Importante
Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui.
Para informações sobre a versão vigente, confira a versão .NET 9 deste artigo.
Este artigo explica como hospedar e implantar Blazor WebAssembly usando o IIS (Serviços de Informações da Internet).
O IIS é um servidor de arquivos estático compatível com aplicativos do Blazor. Para configurar o IIS para hospedar o Blazor, confira Criar um site estático no IIS.
Os ativos publicados são criados na pasta /bin/Release/{TARGET FRAMEWORK}/publish
ou bin\Release\{TARGET FRAMEWORK}\browser-wasm\publish
, dependendo da versão do SDK utilizada, e onde o marcador de posição {TARGET FRAMEWORK}
é o framework de destino. Hospede o conteúdo da pasta publish
no servidor Web ou no serviço de hospedagem.
Arquivo web.config
Quando um projeto do Blazor é publicado, um arquivo web.config
é criado com a seguinte configuração do IIS:
- tipos MIME
- A compactação HTTP está habilitada para os seguintes tipos MIME:
application/octet-stream
application/wasm
- As regras do Módulo de Reescrita de URL são estabelecidas:
- Atender ao subdiretório em que residem os ativos estáticos do aplicativo (
wwwroot/{PATH REQUESTED}
). - Criar o roteamento de fallback do SPA para que as solicitações de ativos que não sejam arquivos sejam redirecionadas ao documento padrão do aplicativo, localizado na pasta de ativos estáticos (
wwwroot/index.html
).
- Atender ao subdiretório em que residem os ativos estáticos do aplicativo (
Uso de um web.config
personalizado
Para usar um arquivo web.config
personalizado:
- Coloque o arquivo
web.config
personalizado na pasta raiz do projeto. - Publique o projeto. Para obter mais informações, confira Hospedar e implantar ASP.NET CoreBlazor.
- Coloque o arquivo
web.config
personalizado na pasta raiz do projeto. Para uma Blazor WebAssemblysolução hospedada, coloque o arquivo na pasta do projeto Server. - Publique o projeto. Para uma solução Blazor WebAssembly hospedada, publique a solução no projeto Server. Para obter mais informações, confira Hospedar e implantar ASP.NET CoreBlazor.
Se a geração ou transformação web.config
do SDK durante a publicação não mover o arquivo para os ativos publicados na pasta publish
ou modificar a configuração personalizada no seu arquivo web.config
personalizado, use qualquer uma das seguintes abordagens, conforme necessário, para assumir o controle total do processo:
Se o SDK não gerar o arquivo, por exemplo, em um aplicativo autônomo Blazor WebAssembly em
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot
oubin\Release\{TARGET FRAMEWORK}\browser-wasm\publish
, dependendo de qual versão do SDK é usada e onde o espaço reservado{TARGET FRAMEWORK}
é a estrutura de destino, defina a propriedade<PublishIISAssets>
comotrue
no arquivo de projeto (.csproj
). Normalmente, para aplicativos autônomos do WebAssembly, essa é a única configuração necessária para mover um arquivoweb.config
personalizado e impedir a transformação do arquivo pelo SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>
Desabilite a transformação
web.config
do SDK no arquivo de projeto (.csproj
):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>
Adicione um destino personalizado ao arquivo de projeto (
.csproj
) para mover um arquivoweb.config
personalizado. No exemplo a seguir, o arquivoweb.config
personalizado é colocado pelo desenvolvedor na raiz do projeto. Se o arquivoweb.config
residir em outro lugar, especifique o caminho para o arquivo emSourceFiles
. O exemplo a seguir especifica a pastapublish
com$(PublishDir)
, mas fornece um caminho paraDestinationFolder
em um local de saída personalizado.<Target Name="CopyWebConfig" AfterTargets="Publish"> <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" /> </Target>
Instale o Módulo de Reescrita de URL
O Módulo de Reescrita de URL é necessário para reescrever URLs. Por padrão, o módulo não está instalado e não está disponível para instalação como um recurso do serviço de função do servidor Web (IIS). O módulo precisa ser baixado do site do IIS. Use o Web Platform Installer para instalar o módulo:
- Localmente, navegue até a página de downloads do Módulo de Reescrita de URL. Para obter a versão em inglês, selecione WebPI para baixar o instalador do WebPI. Para outros idiomas, selecione a arquitetura apropriada para o servidor (x86/x64) para baixar o instalador.
- Copie o instalador para o servidor. Rode o instalador. Selecione o botão Instalar e aceite os termos de licença. Uma reinicialização do servidor não será necessária após a conclusão da instalação.
Configuração do site
Defina o Caminho físico do site para a pasta do aplicativo. A pasta contém:
- O arquivo
web.config
que o IIS usa para configurar o site, incluindo as regras de redirecionamento e os tipos de conteúdo do arquivo necessários. - A pasta de ativos estática do aplicativo.
Hospedar como um subaplicativo do IIS
Se um aplicativo autônomo estiver hospedado como subaplicativo do IIS, execute um dos seguintes procedimentos:
Desabilite o manipulador de Módulo do ASP.NET Core herdado.
Remova o manipulador no arquivo Blazor publicado do aplicativo
web.config
adicionando uma seção<handlers>
à seção<system.webServer>
do arquivo:<handlers> <remove name="aspNetCore" /> </handlers>
Desabilite a herança da seção
<system.webServer>
do aplicativo raiz (pai) usando um elemento<location>
cominheritInChildApplications
definido comofalse
:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" ... /> </handlers> <aspNetCore ... /> </system.webServer> </location> </configuration>
Observação
Desabilitar a herança da seção
<system.webServer>
do aplicativo raiz (pai) é a configuração padrão para aplicativos publicados usando o SDK do .NET.
A remoção do manipulador ou a desativação da herança são realizadas além da configuração do caminho base do aplicativo. Defina o caminho base do aplicativo no arquivo index.html
para o alias do IIS usado ao configurar o subaplicativo no IIS.
Configure o caminho base do aplicativo seguindo as diretrizes no caminho base do aplicativo ASP.NET CoreBlazor.
Compactação de Brotli e Gzip
Esta seção se aplica apenas a aplicativos Blazor WebAssembly autônomos.
Esta seção só se aplica a aplicativos autônomos Blazor WebAssembly. Os aplicativos hospedados do Blazor usam um arquivo padrão do aplicativo ASP.NET Core web.config
, não o arquivo vinculado nesta seção.
O IIS pode ser configurado por meio do web.config
para atender a ativos Blazor com compactação de Brotli ou Gzip para aplicativos autônomos Blazor WebAssembly. Para ver um arquivo de configuração de exemplo, confira web.config
.
A configuração adicional do arquivo de exemplo web.config
pode ser necessária nos seguintes cenários:
- A especificação do aplicativo exige um dos seguintes:
- Servindo arquivos compactados que não estão configurados pelo arquivo de exemplo
web.config
. - Servindo arquivos compactados configurados pelo arquivo de exemplo
web.config
em formato não compactado.
- Servindo arquivos compactados que não estão configurados pelo arquivo de exemplo
- A configuração do IIS do servidor (por exemplo,
applicationHost.config
) fornece padrões do IIS no nível do servidor. Dependendo da configuração no nível do servidor, o aplicativo pode exigir uma configuração diferente do IIS em relação à que o arquivoweb.config
de exemplo contém.
Para obter mais informações sobre arquivos personalizados web.config
, consulte a seção Uso de um web.config
personalizado.
Resolução de problemas
Se um 500 – Erro Interno do Servidor for recebido e o Gerenciador do IIS gerar erros ao tentar acessar a configuração do site, confirme se o Módulo de Regeneração de URL está instalado. Quando o módulo não estiver instalado, o arquivo web.config
não poderá ser analisado pelo IIS. Isso impede que o Gerenciador do IIS carregue a configuração do site e que o site atenda aos arquivos estáticos do Blazor.
Para obter mais informações sobre a solução de problemas de implantações no IIS, confira Solucionar problemas do ASP.NET Core no Serviço de Aplicativo Azure e no IIS.