Partilhar via


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.

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.

Serviço de Aplicativo do Azure é um serviço de plataforma de computação em nuvem da Microsoft para hospedar aplicativos web, incluindo ASP.NET Core.

Padrões de aplicativos Web corporativos

Para obter orientação sobre como criar um aplicativo ASP.NET Core confiável, seguro, com desempenho, testável e escalável, consulte Padrões de aplicativos Web corporativos. Está disponível um aplicativo Web de exemplo completo com qualidade de produção que implementa os padrões.

Recursos úteis

Documentação do Serviço de Aplicativo é a página inicial para documentação, tutoriais, exemplos, guias e outros recursos para Aplicativos do Azure. Dois tutoriais notáveis que dizem respeito à 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 para criar e implantar um aplicativo Web ASP.NET Core no Serviço de Aplicativo do Azure no Linux.

Consulte o ASP.NET Core no Painel de Serviço de Aplicativo para obter a versão do ASP.NET Core disponível no Azure App Service.

Subscreva o repositório de Anúncios 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 seguintes artigos estão disponíveis na documentação do ASP.NET Core:

Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio
Saiba como publicar um aplicativo ASP.NET Core no Serviço de Aplicativo do Azure usando o Visual Studio.

Crie o seu primeiro pipeline
Configure uma compilação de CI para um aplicativo ASP.NET Core e, em seguida, crie uma versão de implantação contínua para o Serviço de Aplicativo do Azure.

Sandbox do Aplicativo Web do Azure
Descubra as limitações na execução do Serviço de Aplicativo do Azure impostas pela plataforma de Aplicações do Azure.

Solucionar problemas e depurar ASP.NET projetos principais
Compreenda e solucione avisos e erros com ASP.NET projetos principais.

Configuração do aplicativo

Plataforma

A arquitetura de plataforma (x86/x64) de um aplicativo de Serviços de Aplicativo é definida nas configurações do aplicativo no Portal do Azure para aplicativos hospedados em uma camada de computação da série A (Básica) ou superior. Confirme se as configurações de publicação do aplicativo (por exemplo, no Visual Studio perfil de publicação (.pubxml)) correspondem à configuração na configuração de serviço do aplicativo no Portal do Azure.

ASP.NET aplicativos principais podem ser publicados dependentes da estrutura porque os tempos de execução 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 você pode implantar aplicativos de 64 bits criados localmente usando o console Kudu ou o processo de publicação no Visual Studio. Para obter mais informações, consulte a secção Publicar e desenvolver a aplicação .

Para aplicativos com dependências nativas, os tempos de execução para aplicativos de 32 bits (x86) estão presentes no Serviço de Aplicativo do Azure. O SDK do .NET Core disponível no App Service é em 32 bits.

Para obter mais informações sobre componentes do .NET Core Framework e métodos de distribuição, como informações sobre o tempo de execução do .NET Core e o SDK do .NET Core, consulte Sobre o .NET Core: Composition.

Pacotes

Inclua os seguintes pacotes NuGet para fornecer recursos de log automático para aplicativos implantados no Serviço de Aplicativo do Azure:

Os pacotes anteriores devem ser explicitamente referenciados no arquivo de projeto do aplicativo.

Substituir a configuração do aplicativo usando o Portal do Azure

As configurações do aplicativo no Portal do Azure permitem que você defina 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 do Azure é reiniciado. A variável de ambiente fica disponível para o aplicativo após a reinicialização do serviço.

As variáveis de ambiente são carregadas na configuração do aplicativo quando CreateBuilder é chamado para criar o host. Para obter mais informações, consulte o Environment Variables Configuration Provider.

As configurações do aplicativo no Portal do Azure permitem que você defina 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 do Azure é reiniciado. A variável de ambiente fica disponível para o aplicativo após a reinicialização do serviço.

Quando um aplicativo usa o Web Host, as variáveis de ambiente são carregadas na configuração do aplicativo quando CreateDefaultBuilder é chamado para criar o host. Para obter mais informações, consulte ASP.NET Core Web Host e o Provedor de Configuração de Variáveis de Ambiente.

Cenários de servidor proxy e balanceador de carga

Middleware de Integração do IIS , que configura o Middleware de Cabeçalhos Encaminhados quando hospedado fora do processo , e o Módulo ASP.NET Core são configurados para encaminhar o esquema (HTTP/HTTPS) e o endereço IP remoto de onde a solicitação se originou. Configuração adicional pode ser necessária para aplicativos hospedados atrás de servidores proxy e balanceadores de carga adicionais. Para obter mais informações, consulte Configurar ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.

Monitorização e registo

Aplicações ASP.NET Core implantadas no App Service recebem automaticamente uma extensão do App Service, Integração de Registo do ASP.NET Core. A extensão permite a integração de log para aplicativos ASP.NET Core no Serviço de Aplicativo do Azure.

APIs ASP.NET Core implantadas no App Service recebem automaticamente uma extensão do App Service, Extensões de Registo do ASP.NET Core. A extensão permite a integração de log para aplicativos ASP.NET Core no Serviço de Aplicativo do Azure.

Para obter informações sobre monitoramento, registro em log e solução de problemas, consulte os seguintes artigos:

Monitorizar aplicações no App Service do Azure
Saiba como rever quotas e métricas para aplicações e planos do Serviço de Aplicações.

Habilitar o log de diagnóstico para aplicativos no Serviço de Aplicativo do Azure
Descubra como habilitar e acessar o log de diagnóstico para códigos de status HTTP, solicitações com falha e atividade do servidor Web.

Manipular erros no ASP.NET Core
Compreenda as abordagens comuns para lidar com 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.

Solução de problemas de erro comum para o Serviço de Aplicativo do Azure e o IIS com 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 conselhos de solução de problemas.

Chaveiro de proteção de dados e slots de implantação

chaves de proteção de dados são mantidas na pasta \ASP.NET\DataProtection-Keys %HOME%. Esta pasta é apoiada pelo armazenamento de rede e é sincronizada em todas as máquinas que hospedam o aplicativo. As chaves não estão protegidas em estado de repouso. Esta pasta fornece o porta-chaves a todas as instâncias de uma aplicação num único slot de implantação. Slots de implantação separados, como Preparo e Produção, não compartilham um porta-chaves.

Ao trocar entre slots de implementação, qualquer sistema que use proteção de dados não conseguirá desencriptar dados armazenados usando o anel de chaves dentro do slot anterior. ASP.NET Cookie Middleware utiliza a proteção de dados para proteger os seus cookies. Isso faz com que os usuários se desconectem de uma aplicação que utiliza o Middleware padrão ASP.NET Cookie. Para uma solução de porta-chaves independente de ranhura, utilize um fornecedor de porta-chaves externo, tal como:

  • Armazenamento de Blobs do Azure
  • Azure Key Vault
  • Repositório SQL
  • Cache Redis

Para obter mais informações, consulte Provedores de armazenamento de chaves no ASP.NET Core.

Implantar um aplicativo ASP.NET Core que usa uma visualização do .NET Core

Para implantar um aplicativo que usa uma versão de visualização do .NET Core, consulte os recursos a seguir. Essas abordagens também são usadas quando o tempo de execução está disponível, mas o SDK não foi instalado no Serviço de Aplicativo do Azure.

Consulte o ASP.NET Core no Painel do Serviço de Aplicativo para obter a versão do ASP.NET Core disponível no serviço de Aplicativo do Azure.

Consulte Selecione 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 independentes.

Especifique 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 uma compilação de integração contínua com o Azure DevOps. Depois que a compilação do Azure DevOps for criada, configure opcionalmente a compilação para usar uma versão específica do SDK.

Especifique a versão do SDK do .NET Core

Ao usar o centro de implantação do Serviço de Aplicativo para criar uma compilação do Azure DevOps, o pipeline de compilação padrão inclui etapas para Restore, Build, Teste Publish. Para especificar a versão do SDK, selecione o botão Adicionar (+) na lista de tarefas do agente para adicionar uma nova etapa. Procure SDK do .NET Core na barra de pesquisa.

Adicionar a etapa do SDK do .NET Core

Mova a etapa para a primeira posição na compilação para que as etapas seguintes usem a versão especificada do SDK do .NET Core. Especifique a versão do SDK do .NET Core. Neste exemplo, o SDK está definido como 3.0.100.

etapa concluída do SDK

Para publicar um de implantação autônoma (SCD), configure o SCD na etapa Publish e forneça o Runtime Identifier (RID).

Publicação independente

Implantar um aplicativo de visualização independente

Um de implantação autônoma (SCD) de que se destina a um tempo de execução de visualização carrega o tempo de execução de visualização na implantação.

Ao implantar um aplicativo independente:

  • O site no Serviço de Aplicativo do Azure não requer a extensão de pré-visualização do site .
  • A aplicação deve ser publicada seguindo uma abordagem diferente da publicação para uma implantação dependente de estrutura (FDD) .

Siga as orientações na seção Implantar o aplicativo independente.

Usar o Docker com aplicativos Web para contêineres

O Docker Hub no https://hub.docker.com/_/microsoft-dotnet contém as imagens de visualização mais recentes do Docker. As imagens podem ser usadas como uma imagem de base. Use a imagem e implante em aplicativos Web para contêineres normalmente.

Instalar a extensão de site de pré-visualização

Se ocorrer um problema com a extensão de pré-visualização do site, abra um problema em dotnet/AspNetCore .

  1. No Portal do Azure, navegue até o Serviço de Aplicativo.
  2. Selecione o aplicativo Web.
  3. Digite "ex" na caixa de pesquisa para filtrar "Extensões" ou role para baixo na lista de ferramentas de gerenciamento.
  4. Selecione Extensões.
  5. Selecione Adicionar.
  6. Selecione a extensão ASP.NET Core {X.Y} ({x64|x86}) Runtime na lista, onde {X.Y} é a versão de visualização do ASP.NET Core e {x64|x86} especifica a plataforma.
  7. Selecione OK para aceitar os termos legais.
  8. Selecione OK para instalar a extensão.

Quando a operação estiver concluída, a versão mais recente de pré-visualização do .NET Core estará instalada. Verifique a instalação:

  1. Selecione Ferramentas Avançadas.

  2. Selecione Ir em Ferramentas Avançadas.

  3. Selecione a opção de menu Debug console>PowerShell.

  4. No prompt do PowerShell, execute o seguinte comando. Substitua a versão de tempo de execução 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 retorna True quando o runtime de pré-visualização x64 é instalado.

Observação

A arquitetura de plataforma (x86/x64) de um aplicativo de Serviços de Aplicativo é definida nas configurações do aplicativo no Portal do Azure para aplicativos hospedados em uma camada de computação da série A (Básica) ou superior. Confirme se as configurações de publicação do aplicativo (por exemplo, no Visual Studio perfil de publicação (.pubxml)) correspondem à configuração na configuração de serviço do 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 ASP.NET Core Module usará o tempo de execução de visualização de 64 bits, se presente. Instale a extensão de Tempo de Execução ASP.NET Core {X.Y} (x64) usando o Portal do Azure.

Depois de instalar o runtime de pré-visualização x64, execute o comando seguinte na janela do Azure Kudu PowerShell para verificar a instalação. Substitua a versão de tempo de execução do ASP.NET Core por {X.Y} no seguinte comando:

Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\

O comando retorna True quando o runtime de pré-visualização x64 é instalado.

Use a extensão para pré-visualização de sites com um modelo ARM

Se um modelo 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 exemplo a seguir, a extensão de site Runtime do ASP.NET Core 5.0 (x64) (AspNetCoreRuntime.5.0.x64) é adicionada à aplicação:

{
    ...
    "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}, utilize o nome da aplicação no Serviço de Aplicações 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 criar um aplicativo de 64 bits.
  • Defina o da Plataforma como de 64 bits nas configurações Configuração>Geral do Serviço de Aplicativo. A aplicação deve usar um plano de serviço Básico ou superior para permitir a escolha da arquitetura da plataforma.

Implementar a aplicação dependente do framework

As aplicações publicadas como dependentes da framework são multiplataforma e não incluem o runtime do .NET na distribuição. O Serviço de Aplicativo do Azure inclui o tempo de execução do .NET.

  1. Clique com o botão direito do mouse no projeto em Explorador de Soluções e selecione Publicar. Como alternativa, selecione Build>Publish {Application Name} na barra de ferramentas do Visual Studio.
  2. Na caixa de diálogo Publicar, selecione Azure>Próxima.
  3. Selecione o serviço do Azure.
  4. Selecione Avançado . A caixa de diálogo Publicar é aberta.
  5. Selecione um grupo de recursos e um plano de hospedagem ou crie novos.
  6. Selecione Concluir.
  7. Na página Publicar:
    • Para Configuration, selecione o ícone da caneta Edit Configuration:
      • Confirme se a configuração do Release está selecionada.
      • Na lista suspensa Modo de Implantação, selecione Dependente do Framework.
      • Na lista pendente Target Runtime, selecione o tempo de execução desejado. O padrão é win-x86.
    • Para remover arquivos adicionais durante a implantação, abra Opções de publicação de arquivos e marque a caixa de seleção para remover arquivos adicionais no destino.
    • Selecione Salvar.
    • Selecione Publicar.

Implantar a aplicação autossuficiente

A publicação de um aplicativo como autônomo produz um 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 tempo de execução de destino. Para obter mais informações, consulte [Publicar auto-contido]/dotnet/core/deploying/#publish-self-contained). Use o Visual Studio ou a CLI do .NET para um implantação autônoma (SCD).

  1. Clique com o botão direito do mouse no projeto em Explorador de Soluções e selecione Publicar. Como alternativa, selecione Build>Publish {Application Name} na barra de ferramentas do Visual Studio.
  2. Na caixa de diálogo Publicar, selecione Azure>Seguinte.
  3. Selecione o serviço do Azure.
  4. Selecione Avançado . A caixa de diálogo Publicar é aberta.
  5. Selecione um grupo de recursos e um plano de hospedagem ou crie novos.
  6. Selecione Concluir.
  7. Na página Publicar:
    • Para Configuration, selecione o ícone de caneta Edit Configuration:
      • Confirme se a configuração do Release está selecionada.
      • Na lista suspensa Modo de implantação, selecione Autónomo.
      • Na lista suspensa Target Runtime, selecione o tempo de execução desejado. O padrão é win-x86.
    • Para remover arquivos adicionais durante a implantação, abra Opções de publicação de arquivos e marque a caixa de seleção para remover arquivos adicionais no destino.
    • Selecione Salvar.
    • Selecione Publicar.

Configurações de protocolo (HTTPS)

As ligações de protocolo seguro permitem especificar um certificado a ser usado ao responder a solicitações por HTTPS. A vinculação requer um certificado privado válido (.pfx) emitido para o nome de host específico. Para obter mais informações, consulte Tutorial: Vincular um certificado SSL personalizado existente ao Serviço de Aplicativo do Azure.

Transforme web.config

Se você precisar transformar web.config na publicação (por exemplo, definir variáveis de ambiente com base na configuração, perfil ou ambiente), consulte Transformar web.config.

Recursos adicionais

O Serviço de Aplicativo do Azure no Windows Server usa Serviços de Informações da Internet (IIS). Kestrel e YARP no front-end fornecem o balanceador de carga. Os tópicos a seguir referem-se à tecnologia subjacente do IIS: