Hospedar e implantar o ASP.NET CoreHost and deploy ASP.NET Core

Em geral, implantar um aplicativo ASP.NET Core em um ambiente de hospedagem:In general, to deploy an ASP.NET Core app to a hosting environment:

  • Implante o aplicativo publicado em uma pasta no servidor de hospedagem.Deploy the published app to a folder on the hosting server.
  • 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.Set up a process manager that starts the app when requests arrive and restarts the app after it crashes or the server reboots.
  • No caso da configuração de um proxy reverso, defina um proxy reverso para encaminhar solicitações para o aplicativo.For configuration of a reverse proxy, set up a reverse proxy to forward requests to the app.

Publicar em uma pastaPublish to a folder

O comando dotnet publish compila o código do aplicativo e copia os arquivos necessários para executar o aplicativo em uma pasta publish.The dotnet publish command compiles app code and copies the files required to run the app into a publish folder. Ao implantar do Visual Studio, a etapa dotnet publish ocorre automaticamente antes de os arquivos serem copiados para o destino da implantação.When deploying from Visual Studio, the dotnet publish step occurs automatically before the files are copied to the deployment destination.

Conteúdo da pastaFolder contents

A pasta publish contém um ou mais arquivos do assembly, dependências e, opcionalmente, o tempo de execução do .NET.The publish folder contains one or more app assembly files, dependencies, and optionally the .NET runtime.

Um aplicativo .NET Core pode ser publicado como uma implantação autocontida ou uma implantação dependente de estrutura.A .NET Core app can be published as self-contained deployment or framework-dependent deployment. Se o aplicativo for autocontido, os arquivos do assembly que contêm o tempo de execução do .NET serão incluídos na pasta publish.If the app is self-contained, the assembly files that contain the .NET runtime are included in the publish folder. Se o aplicativo depender da estrutura, os arquivos de tempo de execução 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.If the app is framework-dependent, the .NET runtime files aren't included because the app has a reference to a version of .NET that's installed on the server. O modelo de implantação padrão é dependente da estrutura.The default deployment model is framework-dependent. Para obter mais informações, consulte Implantação de aplicativos .NET Core.For more information, see .NET Core application deployment.

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.In addition to .exe and .dll files, the publish folder for an ASP.NET Core app typically contains configuration files, static assets, and MVC views. Para obter mais informações, consulte Estrutura do diretório do ASP.NET Core.For more information, see Estrutura do diretório do ASP.NET Core.

Configure um gerenciador de processoSet up a process manager

Um aplicativo ASP.NET Core é um aplicativo de console que deve ser iniciado quando um servidor é inicializado e reiniciado após falhas.An ASP.NET Core app is a console app that must be started when a server boots and restarted if it crashes. Para automatizar inicializações e reinicializações, um gerenciador de processo é necessário.To automate starts and restarts, a process manager is required. Os gerenciadores de processo mais comuns para o ASP.NET Core são:The most common process managers for ASP.NET Core are:

Configurar um proxy reversoSet up a reverse proxy

Se o aplicativo usar o servidor Web do servidor Kestrel, você poderá usar Nginx, Apache ou IIS como um servidor proxy reverso.If the app uses the Kestrel server, Nginx, Apache, or IIS can be used as a reverse proxy server. Um servidor proxy reverso recebe solicitações HTTP da Internet e encaminha-as para o Kestrel.A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel.

Qualquer configuração—com ou sem um servidor proxy reverso—é uma configuração de hospedagem compatível.Either configuration—with or without a reverse proxy server—is a supported hosting configuration. Para obter mais informações, consulte Quando usar Kestrel com um proxy reverso.For more information, see When to use Kestrel with a reverse proxy.

Servidor proxy e cenários de balanceador de cargaProxy server and load balancer scenarios

Configuração adicional pode ser necessária para aplicativos hospedados atrás de servidores proxy e balanceadores de carga.Additional configuration might be required for apps hosted behind proxy servers and load balancers. 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.Without additional configuration, an app might not have access to the scheme (HTTP/HTTPS) and the remote IP address where a request originated. Para obter mais informações, veja Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga.For more information, see Configure ASP.NET Core to work with proxy servers and load balancers.

Usar o Visual Studio e o MSBuild para automatizar as implantaçõesUse Visual Studio and MSBuild to automate deployments

A implantação muitas vezes requer tarefas adicionais além de copiar a saída da dotnet publish para um servidor.Deployment often requires additional tasks besides copying the output from dotnet publish to a server. Por exemplo, arquivos extras podem ser necessários ou excluídos da pasta publish.For example, extra files might be required or excluded from the publish folder. O MSBuild, que é usado pelo Visual Studio para implantação da Web, pode ser personalizado para fazer muitas outras tarefas durante a implantação.Visual Studio uses MSBuild for web deployment, and MSBuild can be customized to do many other tasks during deployment. Para saber mais, confira Perfis de publicação do Visual Studio para a implantação do aplicativo ASP.NET Core e o livro Using MSBuild and Team Foundation Build.For more information, see Perfis de publicação do Visual Studio para a implantação do aplicativo ASP.NET Core and the Using MSBuild and Team Foundation Build book.

Você pode implantar diretamente do Visual Studio para o Serviço de Aplicativo do Azure usando o recurso Publicar na Web ou usando o suporte ao Git interno.By using the Publish Web feature or built-in Git support, apps can be deployed directly from Visual Studio to the Azure App Service. O Azure DevOps Services dá suporte à implantação contínua para o Serviço de Aplicativo do Azure.Azure DevOps Services supports continuous deployment to Azure App Service. Para obter mais informações, confira DevOps com ASP.NET Core e Azure.For more information, see DevOps with ASP.NET Core and Azure.

Publicar no AzurePublish to Azure

Confira 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.See Publicar um aplicativo ASP.NET Core no Azure com o Visual Studio for instructions on how to publish an app to Azure using Visual Studio. Um exemplo adicional é fornecido em Criar um aplicativo Web ASP.NET Core no Azure.An additional example is provided by Create an ASP.NET Core web app in Azure.

Publicar com MSDeploy no WindowsPublish with MSDeploy on Windows

Confira Perfis de publicação do Visual Studio para a implantação do aplicativo 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.See Perfis de publicação do Visual Studio para a implantação do aplicativo ASP.NET Core for instructions on how to publish an app with a Visual Studio publish profile, including from a Windows command prompt using the dotnet msbuild command.

Hospedar em uma web farmHost in a 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.For information on configuration for hosting ASP.NET Core apps in a web farm environment (for example, deployment of multiple instances of your app for scalability), see Hospedar o ASP.NET Core em um web farm.

Executar verificações de integridadePerform health checks

Use o Middleware de verificação de integridade para executar verificações de integridade em um aplicativo e suas dependências.Use Health Check Middleware to perform health checks on an app and its dependencies. Para obter mais informações, consulte Verificações de integridade no ASP.NET Core.For more information, see Verificações de integridade no ASP.NET Core.

Recursos adicionaisAdditional resources