Hospedar e implantar o ASP.NET Core

Em geral, 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 processo que inicia o aplicativo quando a solicitação chega e reinicia-o depois que ele falha ou que o servidor é reinicializado.
  • No caso da configuração de um proxy reverso, defina um proxy reverso para encaminhar solicitações para o aplicativo.

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 publish. Ao implantar do Visual Studio, a etapa dotnet publish ocorre automaticamente antes de os arquivos serem copiados para o destino da implantação.

Executar o aplicativo publicado localmente

Para executar o aplicativo publicado localmente, execute dotnet <ApplicationName>.dll da pasta Publicar.

Publicar arquivos de configurações

Arquivos *.json são publicados por padrão. Para publicar outros arquivos de configurações, especifique-os em um elemento <ItemGroup><Content Include= ... /> no arquivo de projeto. O seguinte exemplo 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 arquivos do assembly, dependências e, opcionalmente, o runtime do .NET.

Um aplicativo .NET Core pode ser publicado como uma implantação autocontida ou uma implantação dependente de estrutura. Se o aplicativo for autocontido, os arquivos do assembly que contêm o runtime do .NET serão incluídos na pasta publish. Se o aplicativo depender da estrutura, os arquivos de runtime do .NET não serão incluídos porque o aplicativo tem uma referência para uma versão do .NET que está instalada no servidor. O modelo de implantação padrão é dependente da estrutura. Para obter mais informações, consulte Implantação de aplicativos .NET Core.

Além de arquivos .exe e .dll, a pasta publish para um aplicativo ASP.NET Core normalmente contém arquivos de configuração, ativos estáticos e exibições do MVC. Para obter mais informações, consulte Estrutura de diretórios do ASP.NET Core.

Configure um gerenciador de processo

Um aplicativo ASP.NET Core é um aplicativo de console que deve ser iniciado quando um servidor é inicializado e reiniciado após falhas. Para automatizar inicializações e reinicializações, um gerenciador de processo é necessário. Os gerenciadores de processo mais comuns para o ASP.NET Core são:

Configurar um proxy reverso

Se o aplicativo usar o servidor Kestrel, você poderá usar o Nginx, o Apache ou o IIS como um servidor proxy reverso. Um servidor proxy reverso recebe solicitações HTTP da Internet e encaminha-as para o Kestrel.

Qualquer configuração – com ou sem um servidor proxy reverso – é uma configuração de hospedagem compatível. Para obter mais informações, consulte Quando usar Kestrel com um proxy reverso.

Qualquer configuração – com ou sem um servidor proxy reverso – é uma configuração de hospedagem compatível. Para obter mais informações, consulte Quando usar Kestrel com um proxy reverso.

Servidor proxy e cenários de 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 em que uma solicitação foi originada. Para obter mais informações, veja Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.

Usar o Visual Studio e o MSBuild para automatizar as implantações

A implantação muitas vezes requer tarefas adicionais além de copiar a saída da dotnet publish para um servidor. Por exemplo, arquivos extras podem ser necessários ou excluídos da pasta publish. O MSBuild, que é usado pelo Visual Studio para implantação da Web, pode ser personalizado para fazer muitas outras tarefas durante a implantação. Para obter mais informações, consulte Perfis de publicação do Visual Studio (.pubxml) para implantação de aplicativos ASP.NET Core e o livro Using MSBuild and Team Foundation Build.

Usando o recurso Publicar na Web, os aplicativos podem ser implantados diretamente do Visual Studio para o Serviço de Aplicativo do Azure. O Azure DevOps Services dá suporte à implantação contínua para o Serviço de Aplicativo do Azure. Para obter mais informações, confira DevOps para desenvolvedores de ASP.NET Core.

Publicar no Azure

Confira instruções sobre como publicar um aplicativo no Azure usando o Visual Studio em Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio. Um exemplo adicional é fornecido em Criar um aplicativo Web ASP.NET Core no Azure.

Publicar com MSDeploy no Windows

Confira Perfis de publicação do Visual Studio (.pubxml) para 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, inclusive 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 a configuração fornecida pelo arquivo web.config, consulte os artigos em Hospedar o ASP.NET Core no Windows com o IIS.

Hospedar em uma web farm

Para obter informações sobre a configuração para hospedar aplicativos do ASP.NET Core em um ambiente de web farm (por exemplo, a implantação de várias instâncias do aplicativo para escalabilidade), veja Hospedar o ASP.NET Core em um web farm.

Hospedar no Docker

Para obter mais informações, consulte Hospedar o ASP.NET Core em contêineres do Docker.

Executar verificações de integridade

Use o Middleware de verificação de integridade para executar verificações de integridade em um aplicativo e suas dependências. Para obter mais informações, confira Verificações de integridade no ASP.NET Core.

Recursos adicionais

Em geral, 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 processo que inicia o aplicativo quando a solicitação chega e reinicia-o depois que ele falha ou que o servidor é reinicializado.
  • No caso da configuração de um proxy reverso, defina um proxy reverso para encaminhar solicitações para o aplicativo.

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 publish. Ao implantar do Visual Studio, a etapa dotnet publish ocorre automaticamente antes de os arquivos serem copiados para o destino da implantação.

Conteúdo da pasta

A pasta publish contém um ou mais arquivos do assembly, dependências e, opcionalmente, o runtime do .NET.

Um aplicativo .NET Core pode ser publicado como uma implantação autocontida ou uma implantação dependente de estrutura. Se o aplicativo for autocontido, os arquivos do assembly que contêm o runtime do .NET serão incluídos na pasta publish. Se o aplicativo depender da estrutura, os arquivos de runtime do .NET não serão incluídos porque o aplicativo tem uma referência para uma versão do .NET que está instalada no servidor. O modelo de implantação padrão é dependente da estrutura. Para obter mais informações, consulte Implantação de aplicativos .NET Core.

Além de arquivos .exe e .dll, a pasta publish para um aplicativo ASP.NET Core normalmente contém arquivos de configuração, ativos estáticos e exibições do MVC. Para obter mais informações, consulte Estrutura de diretórios do ASP.NET Core.

Configure um gerenciador de processo

Um aplicativo ASP.NET Core é um aplicativo de console que deve ser iniciado quando um servidor é inicializado e reiniciado após falhas. Para automatizar inicializações e reinicializações, um gerenciador de processo é necessário. Os gerenciadores de processo mais comuns para o ASP.NET Core são:

Configurar um proxy reverso

Se o aplicativo usar o servidor Kestrel, você poderá usar o Nginx, o Apache ou o IIS como um servidor proxy reverso. Um servidor proxy reverso recebe solicitações HTTP da Internet e encaminha-as para o Kestrel.

Qualquer configuração – com ou sem um servidor proxy reverso – é uma configuração de hospedagem compatível. Para obter mais informações, consulte Quando usar Kestrel com um proxy reverso.

Servidor proxy e cenários de 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 em que uma solicitação foi originada. Para obter mais informações, veja Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.

Usar o Visual Studio e o MSBuild para automatizar as implantações

A implantação muitas vezes requer tarefas adicionais além de copiar a saída da dotnet publish para um servidor. Por exemplo, arquivos extras podem ser necessários ou excluídos da pasta publish. O MSBuild, que é usado pelo Visual Studio para implantação da Web, pode ser personalizado para fazer muitas outras tarefas durante a implantação. Para obter mais informações, consulte Perfis de publicação do Visual Studio (.pubxml) para implantação de aplicativos ASP.NET Core e o livro Using MSBuild and Team Foundation Build.

Usando o recurso Publicar na Web, os aplicativos podem ser implantados diretamente do Visual Studio para o Serviço de Aplicativo do Azure. O Azure DevOps Services dá suporte à implantação contínua para o Serviço de Aplicativo do Azure. Para obter mais informações, confira DevOps para desenvolvedores de ASP.NET Core.

Publicar no Azure

Confira instruções sobre como publicar um aplicativo no Azure usando o Visual Studio em Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio. Um exemplo adicional é fornecido em Criar um aplicativo Web ASP.NET Core no Azure.

Publicar com MSDeploy no Windows

Confira Perfis de publicação do Visual Studio (.pubxml) para 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, inclusive 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 a configuração fornecida pelo arquivo web.config, consulte os artigos em Hospedar o ASP.NET Core no Windows com o IIS.

Hospedar em uma web farm

Para obter informações sobre a configuração para hospedar aplicativos do ASP.NET Core em um ambiente de web farm (por exemplo, a implantação de várias instâncias do aplicativo para escalabilidade), veja Hospedar o ASP.NET Core em um web farm.

Hospedar no Docker

Para obter mais informações, consulte Hospedar o ASP.NET Core em contêineres do Docker.

Recursos adicionais