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 a versão atual, consulte a versão do .NET 10 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 a versão atual, consulte a versão do .NET 10 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, onde o {TARGET FRAMEWORK} espaço reservado é a estrutura 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-streamapplication/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.configpersonalizado na pasta raiz do projeto. - Publique o projeto. Para obter mais informações, confira Hospedar e implantar ASP.NET CoreBlazor.
- Coloque o arquivo
web.configpersonalizado 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 no Blazor WebAssembly ou
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot, onde o espaço reservadobin/Release/{TARGET FRAMEWORK}/browser-wasm/publishé a estrutura de destino, defina a propriedade{TARGET FRAMEWORK}para<PublishIISAssets>no arquivo de projeto (true). Normalmente, para aplicativos autônomos do WebAssembly, essa é a única configuração necessária para mover um arquivoweb.configpersonalizado e impedir a transformação do arquivo pelo SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>Desabilite a transformação
web.configdo SDK no arquivo de projeto (.csproj):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>Adicione um destino personalizado ao arquivo de projeto (
.csproj) para mover um arquivoweb.configpersonalizado. No exemplo a seguir, o arquivoweb.configpersonalizado é colocado pelo desenvolvedor na raiz do projeto. Se o arquivoweb.configresidir em outro lugar, especifique o caminho para o arquivo emSourceFiles. O exemplo a seguir especifica a pastapublishcom$(PublishDir), mas fornece um caminho paraDestinationFolderem 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.configque 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.configadicionando 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>cominheritInChildApplicationsdefinido 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.configem 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.configde 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.