Compartir a través de


Hospedaje e implementación de ASP.NET Core

Nota:

Esta no es la versión más reciente de este artículo. Para la versión actual, consulta la versión .NET 8 de este artículo.

Advertencia

Esta versión de ASP.NET Core ya no se admite. Para obtener más información, consulta la Directiva de soporte técnico de .NET y .NET Core. Para la versión actual, consulta la versión .NET 8 de este artículo.

Importante

Esta información hace referencia a un producto en versión preliminar, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no proporciona ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.

Para la versión actual, consulte la versión .NET 8 de este artículo.

En general, para implementar una aplicación de ASP.NET Core en un entorno de hospedaje:

  • Implemente la aplicación publicada en una carpeta en el servidor de hospedaje.
  • Configure un administrador de procesos que inicie la aplicación cuando lleguen las solicitudes y la reinicie si se bloquea o si se reinicia el servidor.
  • Para configurar un proxy inverso, configure un proxy inverso para reenviar solicitudes a la aplicación.

Para obtener una guía sobre hospedaje y la implementación de Blazor, que se agregue o reemplace la guía de este nodo, consulta Hospedaje e implementación de Blazor en ASP.NET Core.

Publicar la aplicación en una carpeta

El comando dotnet publish compila el código de la aplicación y copia los archivos necesarios para ejecutar la aplicación en una carpeta publish. Al efectuar una implementación desde Visual Studio, el paso dotnet publish se lleva a cabo de forma automática antes de que los archivos se copien en el destino de implementación.

Ejecución de la aplicación publicada

Para ejecutar la aplicación publicada localmente, ejecute dotnet <ApplicationName>.dll desde la carpeta publish.

Publicación de los archivos de configuración

Los archivos *.json se publican de forma predeterminada. Para publicar otros archivos de configuración, especifíquelos en un elemento <ItemGroup><Content Include= ... /> en el archivo de proyecto. En el ejemplo siguiente, se publican archivos XML:

<ItemGroup>
  <Content Include="**\*.xml" Exclude="bin\**\*;obj\**\*"
    CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

Contenido de la carpeta

La carpeta publish contiene uno o varios archivos de ensamblado de aplicaciones, dependencias y, opcionalmente, el entorno de ejecución. NET.

Se puede publicar una aplicación .NET Core como implementación independiente o implementación dependiente del marco. Si la aplicación es independiente, los archivos de ensamblado que contienen el entorno de ejecución .NET se incluyen en la carpeta publish. Si la aplicación es dependiente del marco, los archivos del tiempo de ejecución .NET no se incluyen porque la aplicación tiene una referencia a una versión de .NET que está instalada en el servidor. El modelo de implementación predeterminado es dependiente del marco. Para más información, vea Implementación de aplicaciones .NET Core.

Además de los archivos .exe y .dll, la carpeta publish de una aplicación ASP.NET Core suele contener archivos de configuración, recursos estáticos y vistas de MVC. Para más información, vea Estructura de directorios de ASP.NET Core.

Configurar un administrador de procesos

Una aplicación de ASP.NET Core es una aplicación de consola que se debe iniciar cuando se inicia un servidor y se debe reiniciar si este se bloquea. Para automatizar los inicios y los reinicios, se necesita un administrador de procesos. Los administradores de procesos más comunes para ASP.NET Core son:

Configurar un proxy inverso

Si la aplicación usa el servidor Kestrel, nginx o IIS se puede usar como servidor proxy inverso. Un servidor proxy inverso recibe las solicitudes HTTP de Internet y las reenvía a Kestrel.

Cualquiera de las configuraciones, con o sin servidor proxy inverso, es una configuración de hospedaje admitida. Para más información, consulte Cuándo se debe usar Kestrel con un proxy inverso.

Cualquiera de las configuraciones, con o sin servidor proxy inverso, es una configuración de hospedaje admitida. Para más información, consulte Cuándo se debe usar Kestrel con un proxy inverso.

Escenarios de servidor proxy y equilibrador de carga

Podría ser necesario realizar una configuración adicional para las aplicaciones hospedadas detrás de servidores proxy y equilibradores de carga. Sin una configuración adicional, una aplicación podría no tener acceso al esquema (HTTP/HTTPS) y la dirección IP remota donde se originó una solicitud. Para más información, vea Configurar ASP.NET Core para trabajar con servidores proxy y equilibradores de carga.

Uso de Visual Studio y MSBuild para automatizar implementaciones

La implementación a menudo requiere tareas adicionales además de copiar el resultado del comando dotnet publish en un servidor. Por ejemplo, podrían necesitarse o eliminarse archivos adicionales de la carpeta publish. Para la implementación web, Visual Studio usa MSBuild, que se puede personalizar de modo que lleve a cabo muchas otras tareas durante la implementación. Para más información, vea Perfiles de publicación (.pubxml) de Visual Studio para la implementación de aplicaciones ASP.NET Core y el libro Using MSBuild and Team Foundation Build (Usar MSBuild y Team Foundation Build).

Mediante la característica de publicación web, puede implementar aplicaciones directamente desde Visual Studio en Azure App Service. Azure DevOps Services es compatible con la implementación continua en Azure App Service. Para más información, consulte DevOps para ASP.NET Core Developers.

Publicar en Azure

Vea Publicar una aplicación de ASP.NET Core en Azure con Visual Studio para obtener instrucciones sobre cómo publicar una aplicación en Azure con Visual Studio. Crear una aplicación web de ASP.NET Core en Azure proporciona un ejemplo adicional.

Publicar con MSDeploy en Windows

Vea Perfiles de publicación (.pubxml) de Visual Studio para la implementación de aplicaciones ASP.NET Core para ver instrucciones sobre cómo publicar una aplicación con un perfil de publicación de Visual Studio, incluyendo desde un símbolo del sistema de Windows mediante el comando dotnet msbuild.

Internet Information Services (IIS)

Para las implementaciones en Internet Information Services (IIS) con la configuración proporcionada por el archivo web.config, consulte los artículos en Hospedaje de ASP.NET Core en Windows con IIS.

Hospedaje en una granja de servidores web

Para más información sobre la configuración del hospedaje de aplicaciones de ASP.NET Core en un entorno de granja de servidores web (por ejemplo, para implementar varias instancias de la aplicación para escalabilidad), vea Hospedaje de ASP.NET Core en una granja de servidores web.

Host en Docker

Para más información, vea Hospedar ASP.NET Core en contenedores de Docker.

Realización de comprobaciones de estado

Use middleware de comprobación de estado para realizar comprobaciones de estado en una aplicación y sus dependencias. Para obtener más información, consulte Comprobaciones de estado en ASP.NET Core.

Recursos adicionales

En general, para implementar una aplicación de ASP.NET Core en un entorno de hospedaje:

  • Implemente la aplicación publicada en una carpeta en el servidor de hospedaje.
  • Configure un administrador de procesos que inicie la aplicación cuando lleguen las solicitudes y la reinicie si se bloquea o si se reinicia el servidor.
  • Para configurar un proxy inverso, configure un proxy inverso para reenviar solicitudes a la aplicación.

Publicar la aplicación en una carpeta

El comando dotnet publish compila el código de la aplicación y copia los archivos necesarios para ejecutar la aplicación en una carpeta publish. Al efectuar una implementación desde Visual Studio, el paso dotnet publish se lleva a cabo de forma automática antes de que los archivos se copien en el destino de implementación.

Contenido de la carpeta

La carpeta publish contiene uno o varios archivos de ensamblado de aplicaciones, dependencias y, opcionalmente, el entorno de ejecución. NET.

Se puede publicar una aplicación .NET Core como implementación independiente o implementación dependiente del marco. Si la aplicación es independiente, los archivos de ensamblado que contienen el entorno de ejecución .NET se incluyen en la carpeta publish. Si la aplicación es dependiente del marco, los archivos del tiempo de ejecución .NET no se incluyen porque la aplicación tiene una referencia a una versión de .NET que está instalada en el servidor. El modelo de implementación predeterminado es dependiente del marco. Para más información, vea Implementación de aplicaciones .NET Core.

Además de los archivos .exe y .dll, la carpeta publish de una aplicación ASP.NET Core suele contener archivos de configuración, recursos estáticos y vistas de MVC. Para más información, vea Estructura de directorios de ASP.NET Core.

Configurar un administrador de procesos

Una aplicación de ASP.NET Core es una aplicación de consola que se debe iniciar cuando se inicia un servidor y se debe reiniciar si este se bloquea. Para automatizar los inicios y los reinicios, se necesita un administrador de procesos. Los administradores de procesos más comunes para ASP.NET Core son:

Configurar un proxy inverso

Si la aplicación usa el servidor Kestrel, nginx o IIS se puede usar como servidor proxy inverso. Un servidor proxy inverso recibe las solicitudes HTTP de Internet y las reenvía a Kestrel.

Cualquiera de las configuraciones, con o sin servidor proxy inverso, es una configuración de hospedaje admitida. Para más información, consulte Cuándo se debe usar Kestrel con un proxy inverso.

Escenarios de servidor proxy y equilibrador de carga

Podría ser necesario realizar una configuración adicional para las aplicaciones hospedadas detrás de servidores proxy y equilibradores de carga. Sin una configuración adicional, una aplicación podría no tener acceso al esquema (HTTP/HTTPS) y la dirección IP remota donde se originó una solicitud. Para más información, vea Configurar ASP.NET Core para trabajar con servidores proxy y equilibradores de carga.

Uso de Visual Studio y MSBuild para automatizar implementaciones

La implementación a menudo requiere tareas adicionales además de copiar el resultado del comando dotnet publish en un servidor. Por ejemplo, podrían necesitarse o eliminarse archivos adicionales de la carpeta publish. Para la implementación web, Visual Studio usa MSBuild, que puede personalizar de modo que lleve a cabo muchas otras tareas durante la implementación. Para más información, vea Perfiles de publicación (.pubxml) de Visual Studio para la implementación de aplicaciones ASP.NET Core y el libro Using MSBuild and Team Foundation Build (Usar MSBuild y Team Foundation Build).

Mediante la característica de publicación web, puede implementar aplicaciones directamente desde Visual Studio en Azure App Service. Azure DevOps Services es compatible con la implementación continua en Azure App Service. Para más información, consulte DevOps para ASP.NET Core Developers.

Publicar en Azure

Vea Publicar una aplicación de ASP.NET Core en Azure con Visual Studio para obtener instrucciones sobre cómo publicar una aplicación en Azure con Visual Studio. Crear una aplicación web de ASP.NET Core en Azure proporciona un ejemplo adicional.

Publicar con MSDeploy en Windows

Vea Perfiles de publicación (.pubxml) de Visual Studio para la implementación de aplicaciones ASP.NET Core para ver instrucciones sobre cómo publicar una aplicación con un perfil de publicación de Visual Studio, incluyendo desde un símbolo del sistema de Windows mediante el comando dotnet msbuild.

Internet Information Services (IIS)

Para las implementaciones en Internet Information Services (IIS) con la configuración proporcionada por el archivo web.config, consulte los artículos en Hospedaje de ASP.NET Core en Windows con IIS.

Hospedaje en una granja de servidores web

Para más información sobre la configuración del hospedaje de aplicaciones de ASP.NET Core en un entorno de granja de servidores web (por ejemplo, para implementar varias instancias de la aplicación para escalabilidad), vea Hospedaje de ASP.NET Core en una granja de servidores web.

Host en Docker

Para más información, vea Hospedar ASP.NET Core en contenedores de Docker.

Recursos adicionales