Hospedar e implantar ASP.NET Core
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.
Em geral, para implantar um aplicativo ASP.NET Core em um ambiente de hospedagem:
- Implante o aplicativo publicado em uma pasta no servidor de hospedagem.
- Configure um gerenciador de processos que inicia o aplicativo quando as solicitações chegam e reinicia o aplicativo depois que ele falha ou o servidor é reinicializado.
- Para configurar um proxy reverso, defina-o para encaminhar solicitações para a aplicação.
Para diretrizes de hospedagem e implantação relacionadas a Blazor, que adicionam ou substituem as diretrizes deste nó, consulte Hospedagem e implantação do ASP.NET Core Blazor.
Publicar em uma pasta
O comando dotnet publish compila o código do aplicativo e copia os arquivos necessários para executar o aplicativo em uma pasta publicar. Ao implantar a partir do Visual Studio, a etapa de dotnet publish
ocorre automaticamente antes que os arquivos sejam copiados para o destino da implantação.
Executar o aplicativo publicado localmente
Para executar o aplicativo publicado localmente, execute dotnet <ApplicationName>.dll
a partir da pasta de publicação .
Publicar arquivos de configurações
*.json
arquivos são publicados automaticamente. Para publicar outros arquivos de configurações, especifique-os em um elemento <ItemGroup><Content Include= ... />
no arquivo de projeto. O exemplo a seguir publica arquivos XML:
<ItemGroup>
<Content Include="**\*.xml" Exclude="bin\**\*;obj\**\*"
CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
Conteúdo da pasta
A pasta publish contém um ou mais ficheiros de assemblagem de aplicação, dependências e, opcionalmente, o runtime do .NET.
Uma aplicação .NET Core pode ser publicada como implantação auto-suficiente ou implantação dependente do framework. Se o aplicativo for independente, os arquivos de assembly que contêm o tempo de execução do .NET serão incluídos na pasta publish. Se o aplicativo for dependente da estrutura, os arquivos de tempo de execução do .NET não serão incluídos porque o aplicativo tem uma referência a uma versão do .NET instalada no servidor. O modelo de implantação padrão depende da estrutura. Para obter mais informações, consulte implantação de aplicativos .NET Core.
Além de ficheiros .exe e .dll, a pasta de publicação para uma aplicação ASP.NET Core normalmente contém ficheiros de configuração, elementos estáticos e vistas MVC. Para obter mais informações, consulte ASP.NET Estrutura de diretório principal.
Configurar um gestor de processos
Um aplicativo ASP.NET Core é um aplicativo de console que deve ser iniciado quando um servidor é inicializado e reiniciado se falhar. Para automatizar inícios e reinícios, é necessário um gestor de processos. Os gerenciadores de processos mais comuns para o ASP.NET Core são:
- Linux
- Windows
Configurar um proxy reverso
Se o aplicativo usa o servidor Kestrel, Nginx ou IIS pode ser usado como um servidor proxy reverso. Um servidor proxy reverso recebe solicitações HTTP da Internet e as encaminha para Kestrel.
Qualquer configuração — com ou sem um servidor proxy reverso — é uma configuração de hospedagem suportada. Para mais informações, veja Quando usar Kestrel com um proxy reverso.
Qualquer configuração — com ou sem um servidor proxy reverso — é uma configuração de hospedagem suportada. Para obter mais informações, consulte Quando usar Kestrel com um proxy inverso.
Cenários de servidor proxy e balanceador de carga
Configuração adicional pode ser necessária para aplicativos hospedados atrás de servidores proxy e balanceadores de carga. Sem configuração adicional, um aplicativo pode não ter acesso ao esquema (HTTP/HTTPS) e ao endereço IP remoto de onde uma solicitação se originou. Para obter mais informações, consulte Configurar ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.
Usar o Visual Studio e o MSBuild para automatizar implantações
A implantação geralmente requer tarefas adicionais, além de copiar para um servidor a saída do comando dotnet publish. Por exemplo, arquivos extras podem ser necessários ou excluídos do publicar pasta. O Visual Studio usa MSBuild para implantação da Web, e o MSBuild pode ser personalizado para executar muitas outras tarefas durante a implantação. Para obter mais informações, consulte os perfis de publicação do Visual Studio (.pubxml) para a implementação de aplicações em ASP.NET Core e o livro "Utilizar o MSBuild e o Team Foundation Build".
Usando o o recurso Publicar Web os aplicativos podem ser implantados diretamente do Visual Studio para o Serviço de Aplicativo do Azure. Os Serviços de DevOps do Azure dão suporte a implantação contínua no Serviço de Aplicativo do Azure. Para obter mais informações, consulte DevOps for ASP.NET Core Developers.
Publicar no Azure
Consulte Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio para obter instruções sobre como publicar um aplicativo no Azure usando o Visual Studio. Um exemplo adicional é fornecido pelo Criar um aplicativo Web ASP.NET Core no Azure.
Publicar com MSDeploy no Windows
Consulte perfis de publicação do Visual Studio (.pubxml) para a implantação de aplicativos ASP.NET Core para obter instruções sobre como publicar um aplicativo com um perfil de publicação do Visual Studio, incluindo a partir de um prompt de comando do Windows usando o comando dotnet msbuild.
Serviços de Informações da Internet (IIS)
Para implantações no IIS (Serviços de Informações da Internet) com configuração fornecida pelo arquivo web.config, consulte os artigos em Host ASP.NET Core no Windows com IIS.
Hospedar em uma web farm
Para obter informações sobre a configuração para hospedar aplicativos ASP.NET Core em um ambiente de web farm (por exemplo, implantação de várias instâncias do seu aplicativo para escalabilidade), consulte Host ASP.NET Core em uma web farm.
Alojar no Docker
Para obter mais informações, consulte Host ASP.NET Core em contentores do Docker.
Executar verificações de saúde
Utilize a Middleware de Health Check para realizar verificações de saúde numa aplicação e nas suas dependências. Para obter mais informações, consulte verificações de integridade no ASP.NET Core.
Recursos adicionais
Em geral, para implantar um aplicativo ASP.NET Core em um ambiente de hospedagem:
- Implante o aplicativo publicado em uma pasta no servidor de hospedagem.
- Configure um gerenciador de processos que inicia o aplicativo quando as solicitações chegam e reinicia o aplicativo depois que ele falha ou o servidor é reinicializado.
- Para configurar um proxy reverso, defina-o para encaminhar solicitações à aplicação.
Publicar em uma pasta
O comando dotnet publish compila o código da aplicação e copia arquivos necessários para executar a aplicação numa pasta de publicação . Ao implantar a partir do Visual Studio, a etapa de dotnet publish
ocorre automaticamente antes que os arquivos sejam copiados para o destino da implantação.
Conteúdo da pasta
A pasta publish contém um ou mais arquivos de assembly de aplicativo, dependências e, opcionalmente, o tempo de execução do .NET.
Uma aplicação .NET Core pode ser publicada como implantação independente ou implantação dependente de estrutura. Se o aplicativo for independente, os arquivos de assembly que contêm o tempo de execução do .NET serão incluídos na pasta publish. Se o aplicativo for dependente da estrutura, os arquivos de tempo de execução do .NET não serão incluídos porque o aplicativo tem uma referência a uma versão do .NET instalada no servidor. O modelo de implantação padrão depende da estrutura. Para mais informações, consulte a implantação de aplicativos .NET Core.
Além de arquivos .exe e .dll, a pasta de publicação para uma aplicação ASP.NET Core normalmente contém arquivos de configuração, ativos estáticos e vistas MVC. Para obter mais informações, consulte ASP.NET Estrutura de diretório principal.
Configurar um gestor de processos
Um aplicativo ASP.NET Core é um aplicativo de console que deve ser iniciado quando um servidor é inicializado e reiniciado se falhar. Para automatizar inícios e reinícios, é necessário um gestor de processos. Os gerenciadores de processos mais comuns para o ASP.NET Core são:
- Linux
- Windows
Configurar um proxy reverso
Se o aplicativo usa o servidor Kestrel, Nginx ou IIS pode ser usado como um servidor proxy reverso. Um servidor proxy reverso recebe solicitações HTTP da Internet e as encaminha para Kestrel.
Qualquer configuração — com ou sem um servidor proxy reverso — é uma configuração de hospedagem suportada. Para obter mais informações, veja Quando usar Kestrel com o proxy reverso.
Cenários de servidor proxy e balanceador de carga
Configuração adicional pode ser necessária para aplicativos hospedados atrás de servidores proxy e balanceadores de carga. Sem configuração adicional, um aplicativo pode não ter acesso ao esquema (HTTP/HTTPS) e ao endereço IP remoto de onde uma solicitação se originou. Para obter mais informações, consulte Configurar ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.
Usar o Visual Studio e o MSBuild para automatizar implantações
A implementação geralmente requer tarefas adicionais, além de copiar a saída do dotnet publish para um servidor. Por exemplo, arquivos extra podem ser necessários ou excluídos da pasta de publicação . Visual Studio usa MSBuild para implantação da Web, e MSBuild pode ser personalizado para fazer muitas outras tarefas durante a implantação. Para obter mais informações, consulte os perfis de publicação do Visual Studio (.pubxml) para implementar aplicativos ASP.NET Core e o livro Usando o MSBuild e o Team Foundation Build.
Usando o recurso Publicar Web, os aplicativos podem ser implantados diretamente do Visual Studio para o Serviço de Aplicativo do Azure. Os Serviços de DevOps do Azure dão suporte a implantação contínua no Serviço de Aplicativo do Azure. Para obter mais informações, consulte DevOps for ASP.NET Core Developers.
Publicar no Azure
Consulte Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio para obter instruções sobre como publicar um aplicativo no Azure usando o Visual Studio. Um exemplo adicional é fornecido pelo Criar um aplicativo Web ASP.NET Core no Azure.
Publicar com MSDeploy no Windows
Consulte perfis de publicação do Visual Studio (.pubxml) para a implementação de aplicações ASP.NET Core para instruções sobre a publicação de uma aplicação usando um perfil de publicação do Visual Studio, inclusive a partir de um prompt de comando do Windows usando o comando dotnet msbuild.
Serviços de Informações da Internet (IIS)
Para implantações no IIS (Serviços de Informações da Internet) com configuração fornecida pelo arquivo web.config, consulte os artigos em Host ASP.NET Core no Windows com IIS.
Alojamento numa fazenda web
Para obter informações sobre a configuração para hospedar aplicativos ASP.NET Core em um ambiente de web farm (por exemplo, implantação de várias instâncias do seu aplicativo para escalabilidade), consulte Host ASP.NET Core em uma web farm.
Alojamento no Docker
Para obter mais informações, consulte Host ASP.NET Core em contentores do Docker.