Implantar aplicativos ASP.NET Core no Serviço de Aplicativo do Azure
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.
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 .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 nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.
Para a versão atual, consulte a versão .NET 9 deste artigo.
Serviço de Aplicativo do Azure é um serviço de plataforma de computação em nuvem da Microsoft para hospedar aplicativos Web, incluindo o ASP.NET Core.
Padrões de aplicativos Web confiáveis
Confira O padrão de aplicativo da Web confiável para.NET vídeos do YouTube e artigo para obter orientação sobre como criar um aplicativo ASP.NET Core moderno, confiável, de alto desempenho, testável, econômico e escalonável, seja do zero ou refatorando um existente aplicativo.
Recursos úteis
A documentação de Serviço de Aplicativo é o home de documentação de aplicativos, tutoriais, exemplos, guias de instruções e outros recursos do Azure. Dois tutoriais importantes que pertencem à hospedagem de aplicativos ASP.NET Core são:
Criar um aplicativo Web ASP.NET Core no Azure
Use o Visual Studio para criar e implantar um aplicativo Web ASP.NET Core no Serviço de Aplicativo do Azure no Windows.
Criar um aplicativo ASP.NET Core no Serviço de Aplicativo no Linux
Use a linha de comando do Visual Studio para criar e implantar um aplicativo Web ASP.NET Core no Serviço de Aplicativo do Azure no Linux.
Consulte o Painel do Serviço de Aplicativo do ASP.NET Core para obter a versão do ASP.NET Core disponível no serviço de Aplicativo do Azure.
Assine o repositório Comunicados do Serviço de Aplicativo e monitore os problemas. A equipe do Serviço de Aplicativo publica regularmente anúncios e cenários que chegam ao Serviço de Aplicativo.
Os artigos a seguir estão disponíveis na documentação do ASP.NET Core:
Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio
Aprenda como publicar um aplicativo ASP.NET Core no Serviço de Aplicativo do Azure usando o Visual Studio.
Criar seu primeiro pipeline
Configurar um build de CI para um aplicativo ASP.NET Core e, em seguida, criar uma versão de implantação contínua para o Serviço de Aplicativo do Azure.
Área restrita de aplicativo Web do Azure
Descubra as limitações de runtime do Serviço de Aplicativo do Azure impostas pela plataforma de Aplicativos do Azure.
Solucionar problemas e depurar projetos do ASP.NET Core
Compreenda e solucione problemas de avisos e erros com projetos do ASP.NET Core.
Configuração de aplicativo
Plataforma
A arquitetura da plataforma (x86/x64) de um aplicativo dos Serviços de Aplicativos é definida nas configurações do aplicativo no portal do Azure para aplicativos hospedados em um nível de hospedagem de computação da série A (Básico) ou superior. Confirme se as configurações de publicação do aplicativo (por exemplo, no perfil de publicação (.pubxml) do Visual Studio) correspondem à configuração do serviço de aplicativo no Portal do Azure.
Aplicativos ASP.NET Core podem ser publicados como dependentes de estrutura, pois os runtimes para aplicativos de 64 bits (x64) e 32 bits (x86) estão presentes no Serviço de Aplicativo do Azure. O SDK do .NET Core disponível no Serviço de Aplicativo é de 32 bits, mas é possível implantar aplicativos de 64 bits compilados localmente usando o console do Kudu ou o processo de publicação do Visual Studio. Para obter mais informações, consulte a seção Publicar e implantar o aplicativo.
Para aplicativos com dependências nativas, os runtimes para aplicativos de 32 bits (x86) estão presentes no Serviço de Aplicativo do Azure. O SDK do .NET Core disponível no Serviço de Aplicativo é de 32 bits.
Para obter mais informações sobre os componentes e os métodos de distribuição da estrutura do .NET Core (por exemplo, informações sobre o runtime e sobre o SDK do .NET Core), consulte Sobre o .NET Core: Composição.
Pacotes
Incluem os seguintes pacotes NuGet para fornecer recursos de registro automático em log para aplicativos implantados no Serviço de Aplicativo do Azure:
- Microsoft.AspNetCore.AzureAppServices.HostingStartup usa IHostingStartup para fornecer integração de registro em log do ASP.NET Core com o Serviço de Aplicativo do Azure. Os recursos de registro em log adicionais são fornecidos pelo pacote
Microsoft.AspNetCore.AzureAppServicesIntegration
. - Microsoft.AspNetCore.AzureAppServicesIntegration executa AddAzureWebAppDiagnostics para adicionar provedores de log de diagnósticos do Serviço de Aplicativo do Azure no pacote
Microsoft.Extensions.Logging.AzureAppServices
. - Microsoft.Extensions.Logging.AzureAppServices fornece implementações de agente para dar suporte a recursos de streaming de log e logs de diagnóstico do Serviço de Aplicativo do Azure.
Os pacotes anteriores devem ser referenciados explicitamente no arquivo de projeto do aplicativo.
Substituir a configuração do aplicativo no Portal do Azure
As configurações do aplicativo no portal do Azure permitem definir variáveis de ambiente para o aplicativo. As variáveis de ambiente podem ser consumidas pelo Provedor de configuração de variáveis de ambiente.
Quando uma configuração de aplicativo é criada ou modificada no Portal do Azure e o botão Salvar é selecionado, o Aplicativo Azure é reiniciado. A variável de ambiente estará disponível para o aplicativo após o serviço ser reiniciado.
As variáveis de ambiente são carregadas na configuração do aplicativo quando CreateBuilder é chamado para criar o host. Para saber mais, consulte o Provedor de configuração de variáveis de ambiente.
As configurações do aplicativo no portal do Azure permitem definir variáveis de ambiente para o aplicativo. As variáveis de ambiente podem ser consumidas pelo Provedor de configuração de variáveis de ambiente.
Quando uma configuração de aplicativo é criada ou modificada no Portal do Azure e o botão Salvar é selecionado, o Aplicativo Azure é reiniciado. A variável de ambiente estará disponível para o aplicativo após o serviço ser reiniciado.
Quando um aplicativo usa o Host da Web, as variáveis de ambiente são carregadas na configuração do aplicativo quando CreateDefaultBuilder é chamado para criar o host. Para saber mais, confira Host da Web do ASP.NET Core e Provedor de Configuração de Variáveis de Ambiente.
Servidor proxy e cenários de balanceador de carga
O Middleware de integração do IIS, que configura o Middleware de cabeçalhos encaminhados ao hospedar fora do processo, e o módulo do ASP.NET Core são configurados para encaminhar o esquema (HTTP/HTTPS) e o endereço IP remoto de onde a solicitação foi originada. Configuração adicional pode ser necessária para aplicativos hospedados atrás de servidores proxy adicionais e balanceadores de carga. Para obter mais informações, veja Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.
Monitoramento e registro em log
Os aplicativos ASP.NET Core implantados no Serviço de Aplicativo recebem automaticamente uma extensão do Serviço de Aplicativo, Integração de Log do ASP.NET Core. A extensão habilita a integração de log para aplicativos ASP.NET Core no Serviço de Aplicativo do Azure.
Os aplicativos ASP.NET Core implantados no Serviço de Aplicativo recebem automaticamente uma extensão do Serviço de Aplicativo, Extensões de Log do ASP.NET Core. A extensão habilita a integração de log para aplicativos ASP.NET Core no Serviço de Aplicativo do Azure.
Para monitoramento, registro em log e informações de solução de problemas, veja os seguintes artigos:
Monitorar aplicativos no Serviço de Aplicativo do Azure
Saiba como examinar as cotas e métricas para aplicativos e planos do Serviço de Aplicativo.
Habilitar log de diagnósticos para aplicativos no Serviço de Aplicativo do Azure
Descubra como habilitar e acessar o log de diagnósticos para os códigos de status HTTP, solicitações com falha e atividade do servidor Web.
Tratar erros no ASP.NET Core
Entenda as abordagens comuns para o tratamento de erros em aplicativos ASP.NET Core.
Solucionar problemas do ASP.NET Core no Serviço de Aplicativo do Azure e no IIS
Saiba como diagnosticar problemas com implantações do Serviço de Aplicativo do Azure com aplicativos ASP.NET Core.
Solucionar problemas com erros comuns no Serviço de Aplicativo do Azure e no IIS com o ASP.NET Core
Consulte os erros comuns de configuração de implantação para aplicativos hospedados pelo Serviço de Aplicativo do Azure/IIS com orientação para solução de problemas.
Anel de chave de proteção de dados e slots de implantação
As chaves de proteção de dados são mantidas na pasta %HOME%\ASP.NET\DataProtection-Keys. Essa pasta é apoiada pelo repositório de rede e é sincronizada em todos os computadores que hospedam o aplicativo. As chaves não são protegidas em rest. Essa pasta fornece o anel de chave para todas as instâncias de um aplicativo em um único slot de implantação. Slots de implantação separados, como de preparo e produção, não compartilham um anel de chave.
Quando ocorre a troca entre os slots de implantação, nenhum sistema que usa a proteção de dados consegue descriptografar dados armazenados usando o anel de chave dentro do slot anterior. O middleware Cookie do ASP.NET usa proteção de dados para proteger seus cookies. Com isso, os usuários são desconectados de um aplicativo que usa o Middleware Cookie padrão do ASP.NET. Para uma solução de anel de chave independente de slot, use um provedor de anel de chave externo, como:
- Armazenamento de Blobs do Azure
- Cofre de Chave do Azure
- Repositório SQL
- Cache Redis
Para obter mais informações, veja Principais provedores de armazenamento no ASP.NET Core.
Implantar um aplicativo ASP.NET Core que usa uma versão prévia do .NET Core
Para implantar um aplicativo que usa uma versão prévia do .NET Core, consulte os recursos a seguir. Essas abordagens também são usadas quando o runtime está disponível, mas o SDK não foi instalado no Serviço de Aplicativo do Azure.
- Especificar a versão do SDK do .NET Core usando o Azure Pipelines
- Implantar um aplicativo autossuficiente em versão prévia
- Usar o Docker com aplicativos Web para contêineres
- Instalar a extensão de site da versão prévia
Consulte o Painel do Serviço de Aplicativo do ASP.NET Core para obter a versão do ASP.NET Core disponível no serviço de Aplicativo do Azure.
Consulte Selecionar a versão do .NET Core a ser usada para obter informações sobre como selecionar a versão do SDK do .NET para implantações autossuficientes.
Especificar a versão do SDK do .NET Core usando o Azure Pipelines
Use Cenários de CI/CD do Serviço de Aplicativo do Azure para configurar um build de integração contínua com o Azure DevOps. Depois que o build do Azure DevOps for criado, você pode configurar o build para usar uma versão específica do SDK.
Especificar a versão do SDK do .NET Core
Ao usar o centro de implantação do Serviço de Aplicativo para criar um build do Azure DevOps, o pipeline de build padrão inclui etapas para Restore
, Build
, Test
e Publish
. Para especificar a versão do SDK, selecione o botão Adicionar (+) na lista de trabalhos do Agente para adicionar uma nova etapa. Pesquise pelo SDK do .NET Core na barra de pesquisa.
Mova a etapa para a primeira posição no build para que as etapas posteriores usem a versão especificada do SDK do .NET Core. Especifique a versão do SDK do .NET Core. Neste exemplo, o SDK é definido como 3.0.100
.
Para publicar uma SCD (implantação autossuficiente), configure o SCD na etapa Publish
e forneça o RID (identificador do runtime).
Implantar um aplicativo autossuficiente em versão prévia
Uma SCD (implantação autocontida) voltada para um runtime de versão prévia transporta o runtime da versão prévia na implantação.
Ao implantar um aplicativo autocontido:
- O site no Serviço de Aplicativo do Azure não exige a extensão de site da versão prévia.
- O aplicativo precisa ser publicado após uma abordagem diferente da publicação em uma FDD (implantação dependente de estrutura).
Siga as orientações fornecidas na seção Implantar o aplicativo autossuficiente.
Usar o Docker com aplicativos Web para contêineres
O Hub do Docker em https://hub.docker.com/_/microsoft-dotnet
contém as imagens do Docker de versão prévia mais recentes. As imagens podem ser usadas como uma imagem de base. Use a imagem e implante aplicativos Web para contêineres normalmente.
Instalar a extensão de site da versão prévia
Se houver problemas ao usar a extensão de site em versão prévia, abra um problema do dotnet/AspNetCore.
- No portal do Azure, navegue até o Serviço de Aplicativo.
- Selecione o aplicativo Web.
- Insira "ex" na caixa de pesquisa para filtrar por "Extensões" ou role para baixo na lista de ferramentas de gerenciamento.
- Selecione Extensões.
- Selecione Adicionar.
- Selecione a extensão Runtime do ASP.NET Core {X.Y} ({x64|x86}) na lista, em que
{X.Y}
é a versão prévia do ASP.NET Core e{x64|x86}
especifica a plataforma. - Selecione OK para aceitar os termos legais.
- Selecione OK para instalar a extensão.
Quando a operação for concluída, a versão prévia mais recente do .NET Core será instalada. Verifique a instalação:
Selecione Ferramentas Avançadas.
Selecione Acessar em Ferramentas Avançadas.
Selecione o item de menu Console de depuração>PowerShell.
No prompt do PowerShell, execute o seguinte comando. Substitua a versão do runtime do ASP.NET Core por
{X.Y}
e a plataforma por{PLATFORM}
no comando:Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.{PLATFORM}\
O comando retornará
True
quando o runtime da versão prévia x64 estiver instalado.
Observação
A arquitetura da plataforma (x86/x64) de um aplicativo dos Serviços de Aplicativos é definida nas configurações do aplicativo no portal do Azure para aplicativos hospedados em um nível de hospedagem de computação da série A (Básico) ou superior. Confirme se as configurações de publicação do aplicativo (por exemplo, no perfil de publicação (.pubxml) do Visual Studio) correspondem à configuração do serviço de aplicativo no portal do Azure.
Se o aplicativo for executado no modo em processo e a arquitetura da plataforma estiver configurada para 64 bits (x64), o Módulo do ASP.NET Core usará o runtime da versão prévia de 64 bits, se estiver presente. Instale a extensão Runtime do ASP.NET Core {X.Y} (x64) usando o portal do Azure.
Depois de instalar o runtime da versão prévia x64, execute o seguinte comando na janela de comando do Kudu PowerShell do Azure para verificar a instalação. Substitua a versão de runtime do ASP.NET Core por {X.Y}
no seguinte comando:
Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\
O comando retornará True
quando o runtime da versão prévia x64 estiver instalado.
Usar a extensão de site de visualização com um modelo do ARM
Se um modelo do ARM for usado para criar e implantar aplicativos, o tipo de recurso Microsoft.Web/sites/siteextensions
poderá ser usado para adicionar a extensão de site a um aplicativo Web. No seguinte exemplo, a extensão de site do Runtime do ASP.NET Core 5.0 (x64) (AspNetCoreRuntime.5.0.x64
) é adicionada ao aplicativo:
{
...
"parameters": {
"site_name": {
"defaultValue": "{SITE NAME}",
"type": "String"
},
...
},
...
"resources": [
...
{
"type": "Microsoft.Web/sites/siteextensions",
"apiVersion": "2018-11-01",
"name": "[concat(parameters('site_name'), '/AspNetCoreRuntime.5.0.x64')]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
]
}
]
}
Para o espaço reservado{SITE NAME}
, use o nome do aplicativo no Serviço de Aplicativo do Azure (por exemplo, contoso
).
Publicar e implantar o aplicativo
Para uma implantação de 64 bits:
- Use um SDK do .NET Core de 64 bits para compilar um aplicativo de 64 bits.
- Configure a Plataforma como 64 bits na seção Configuração>Configurações gerais do Serviço de Aplicativo. O aplicativo deve usar um plano de serviço Básico ou superior para possibilitar a escolha do número de bits da plataforma.
Implantar o aplicativo dependente de estrutura de aplicativos
Os aplicativos publicados como dependentes de estrutura são multiplataforma e não incluem o runtime do .NET na implantação. O Serviço de Aplicativo do Azure inclui o runtime do .NET.
- No Visual Studio, clique com o botão direito do mouse no nome do projeto no Gerenciador de Soluções e selecione Publicar. Como alternativa, selecione Build>Publicar {Nome do Aplicativo} na barra de ferramentas do Visual Studio.
- Na caixa de diálogo Publicar, selecione Azure>Avançar.
- Selecione o serviço do Azure.
- Selecione Avançado. A caixa de diálogo Publicar será aberta.
- Selecione um grupo de recursos e um plano de hospedagem ou crie-os.
- Selecione Concluir.
- Na página Publicar:
- Para Configuração, selecione o ícone de caneta Editar Configuração:
- Confirme se a configuração Versão está selecionada.
- Na lista suspensa Modo de Implantação, selecione Dependente da Estrutura.
- Selecione o runtime desejado na lista suspensa Runtime de Destino. O padrão é
win-x86
.
- Para remover arquivos adicionais após a implantação, abra as Opções de Publicação do Arquivo e marque a caixa de seleção para remover arquivos adicionais no destino.
- Selecione Salvar.
- Selecione Publicar.
- Para Configuração, selecione o ícone de caneta Editar Configuração:
Implantar o aplicativo autocontido
A publicação de um aplicativo como autocontido produz um arquivo executável específico da plataforma. A pasta de publicação de saída contém todos os componentes do aplicativo, incluindo as bibliotecas .NET e o runtime de destino. Para obter mais informações, consulte [Publicar autocontido]/dotnet/core/deploying/#publish-self-contained). Use o Visual Studio ou a CLI do .NET para uma SCD (implantação autossuficiente).
- No Visual Studio, clique com o botão direito do mouse no nome do projeto no Gerenciador de Soluções e selecione Publicar. Como alternativa, selecione Build>Publicar {Nome do Aplicativo} na barra de ferramentas do Visual Studio.
- Na caixa de diálogo Publicar, selecione Azure>Avançar.
- Selecione o serviço do Azure.
- Selecione Avançado. A caixa de diálogo Publicar será aberta.
- Selecione um grupo de recursos e um plano de hospedagem ou crie-os.
- Selecione Concluir.
- Na página Publicar:
- Para Configuração, selecione o ícone de caneta Editar Configuração:
- Confirme se a configuração Versão está selecionada.
- Na lista suspensa Modo de Implantação, selecione Autossuficiente.
- Selecione o runtime desejado na lista suspensa Runtime de Destino. O padrão é
win-x86
.
- Para remover arquivos adicionais após a implantação, abra as Opções de Publicação do Arquivo e marque a caixa de seleção para remover arquivos adicionais no destino.
- Selecione Salvar.
- Selecione Publicar.
- Para Configuração, selecione o ícone de caneta Editar Configuração:
Configurações de protocolo (HTTPS)
As associações de protocolo de segurança permitem especificar um certificado a ser usado ao responder a solicitações em HTTPS. A associação requer um certificado privado válido (.pfx) emitido para o nome do host específico. Para mais informações, veja Tutorial: associar um certificado SSL personalizado existente ao Serviço de Aplicativo do Azure.
Transformação do Web.config
Se você precisar transformar o Web.config em publicação (por exemplo, definir variáveis de ambiente com base na configuração, no perfil ou no ambiente), consulte Transformar web.config.
Recursos adicionais
- Visão geral do Serviço de Aplicativo
- Visão geral de diagnóstico do Serviço de Aplicativo do Azure
- Hospede o ASP.NET Core em um Web Farm
- Tutorial: conectar-se ao Banco de Dados SQL do Serviço de Aplicativo .NET sem segredos usando uma identidade gerenciada identity
O Serviço de Aplicativo do Azure no Windows Server usa o IIS (Serviços de Informações da Internet). Kestrel e YARP no front-end fornecem o balanceador de carga. Os tópicos a seguir estão relacionados com a tecnologia subjacente do IIS: