Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 .NET 10 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 do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.
Este artigo explica como alojar e implementar Blazor WebAssembly utilizando Serviços de Informação da Internet (IIS).
O IIS é um servidor de ficheiros estático capaz para Blazor aplicações. Para configurar o IIS para hospedar Blazor, veja Construir um Website Estático no IIS.
Os recursos publicados são criados na pasta /bin/Release/{TARGET FRAMEWORK}/publish ou bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, onde o marcador {TARGET FRAMEWORK} é o framework de destino. Aloja o conteúdo da publish pasta no servidor web ou serviço de alojamento.
arquivo web.config
Quando um Blazor projeto é publicado, é criado um web.config ficheiro com a seguinte configuração IIS:
- Tipos MIME
- A compressão HTTP está ativada para os seguintes tipos MIME:
application/octet-streamapplication/wasm
- As regras do Módulo de Reescrita de URL são estabelecidas:
- Servir o subdiretório onde residem os ativos estáticos da aplicação (
wwwroot/{PATH REQUESTED}). - Criar o roteamento de fallback SPA para que os pedidos de recursos que não sejam ficheiros sejam redirecionados para o documento padrão da aplicação na sua pasta de recursos estáticos (
wwwroot/index.html).
- Servir o subdiretório onde residem os ativos estáticos da aplicação (
Utilização de um personalizado web.config
Para usar um ficheiro personalizado web.config :
- Coloque o ficheiro personalizado
web.configna pasta raiz do projeto. - Publica o projeto. Para obter mais informações, consulte Hospedar e implantar ASP.NET Core Blazor.
- Coloque o ficheiro personalizado
web.configna pasta raiz do projeto. Para uma Blazor WebAssembly alojada, coloque o ficheiro na Server pasta do projeto. - Publica o projeto. Para uma solução Blazor WebAssembly alojada, publique a solução a partir do projeto Server. Para obter mais informações, consulte Hospedar e implantar ASP.NET Core Blazor.
Se a geração ou transformação do web.config SDK durante a publicação não mover o ficheiro para os ativos publicados na pasta publish ou modificar a configuração personalizada no seu ficheiro personalizado web.config, utilize uma das seguintes abordagens conforme necessário para assumir o controlo total do processo:
Se o SDK não gerar o ficheiro, por exemplo, numa aplicação autónoma em Blazor WebAssembly ou
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot, onde o marcador de posiçãobin/Release/{TARGET FRAMEWORK}/browser-wasm/publishé o framework alvo, defina a propriedade{TARGET FRAMEWORK}como<PublishIISAssets>no ficheiro do projeto (true). Normalmente, para aplicações WebAssembly autónomas, esta é a única configuração necessária para mover um ficheiro personalizadoweb.confige evitar a transformação do ficheiro pelo SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>Desative a transformação do
web.configSDK no ficheiro do projeto (.csproj):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>Adicione um alvo personalizado ao ficheiro do projeto (
.csproj) para mover um ficheiro personalizadoweb.config. No exemplo seguinte, o ficheiro personalizadoweb.configé colocado pelo programador na raiz do projeto. Se oweb.configficheiro estiver noutro local, especifique o caminho para o ficheiro emSourceFiles. O exemplo seguinte especifica apublishpasta com$(PublishDir), mas fornece um caminho paraDestinationFolderpara uma localização de saída personalizada.<Target Name="CopyWebConfig" AfterTargets="Publish"> <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" /> </Target>
Instalar o Módulo de Reescrita de URL
O Módulo de Reescrita de URLs é necessário para reescrever URLs. O módulo não está instalado por padrão, e não está disponível para instalação como uma funcionalidade de serviço de função no Web Server (IIS). O módulo deve ser descarregado do site do IIS. Use o Instalador da Plataforma Web para instalar o módulo:
- Localmente, navegue até à página de downloads do Módulo de Reescrita URL. Para a versão em inglês, selecione WebPI para descarregar o instalador WebPI. Para outras linguagens, selecione a arquitetura apropriada para o servidor (x86/x64) para descarregar o instalador.
- Copie o instalador para o servidor. Executar o instalador. Selecione o botão Instalar e aceite os termos da licença. Não é necessário reiniciar o servidor após a conclusão da instalação.
Configurar o site
Defina o caminho físico do site para a pasta da aplicação. A pasta contém:
- O
web.configficheiro que o IIS utiliza para configurar o site, incluindo as regras de redirecionamento necessárias e os tipos de conteúdo do ficheiro. - A pasta de ativos estáticos da aplicação.
Host como sub-aplicação IIS
Se uma aplicação autónoma estiver alojada como uma sub-aplicação IIS, execute uma das seguintes opções:
Desative o gestor do Módulo ASP.NET Core herdado.
Remova o handler do ficheiro publicado Blazor da aplicação adicionando uma secção
web.configà secção<handlers>do ficheiro:<handlers> <remove name="aspNetCore" /> </handlers>Desative a herança da secção raiz (pai) da aplicação
<system.webServer>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
A desativação da herança da secção da aplicação principal (mãe)
<system.webServer>é a configuração padrão para aplicações publicadas através do SDK .NET.
A remoção do handler ou desativação da herança é feita além de configurar o caminho base da aplicação. Defina o caminho da base da aplicação no ficheiro da aplicação index.html para o alias IIS usado ao configurar a subaplicação no IIS.
Configure o caminho base da aplicação seguindo as instruções em caminho base da aplicação do ASP.NET CoreBlazor.
Compressão Brotli e Gzip
Esta secção aplica-se apenas a aplicações autónomas Blazor WebAssembly .
Esta secção aplica-se apenas a aplicações autónomas Blazor WebAssembly . As aplicações alojadas Blazor usam um ficheiro ASP.NET Core web.config por defeito, não o ficheiro ligado nesta secção.
O IIS pode ser configurado através de web.config para servir de ativos comprimidos Brotli ou Gzip para aplicações autónomas Blazor. Para um ficheiro de configuração de exemplo, veja web.config.
Pode ser necessária uma configuração adicional do ficheiro de exemplo web.config nos seguintes cenários:
- A especificação da aplicação exige uma das seguintes opções:
- Servir ficheiros comprimidos que não estão configurados pelo ficheiro de exemplo
web.config. - Servir ficheiros comprimidos configurados pelo ficheiro de exemplo
web.confignum formato não comprimido.
- Servir ficheiros comprimidos que não estão configurados pelo ficheiro de exemplo
- A configuração do IIS do servidor (por exemplo,
applicationHost.config) fornece os valores predefinidos do IIS ao nível do servidor. Dependendo da configuração ao nível do servidor, a aplicação pode exigir uma configuração IIS diferente daquela que o ficheiro de exemploweb.configcontém.
Para mais informações sobre ficheiros personalizados web.config , consulte a secção Utilização de um ficheiro personalizado web.config .
Solução de problemas
Se for recebido um 500 - Erro Interno do Servidor e o IIS Manager lançar erros ao tentar aceder à configuração do website, confirme que o Módulo de Reescrita de URL está instalado. Quando o módulo não está instalado, o web.config ficheiro não pode ser analisado pelo IIS. Isto impede que o Gestor IIS carregue a configuração do site e que o site sirva Blazoros ficheiros estáticos.
Para mais informações sobre resolução de problemas de implementações para IIS, consulte Troubleshoot ASP.NET Core no Azure App Service e IIS.