Implementación de la aplicación en una carpeta, IIS, Azure u otro destino
Al implementar una aplicación, servicio o componente, se distribuye para su instalación en otros equipos, dispositivos, servidores o en la nube. Elija el método adecuado en Visual Studio para el tipo de implementación que necesita.
Obtenga ayuda para la tarea de implementación:
¿No está seguro de qué opción de implementación elegir? Consulte ¿Qué opciones de publicación son adecuadas para mí?
Para obtener ayuda con los problemas de implementación de Azure App Service o IIS, consulte Solución de problemas de ASP.NET Core en Azure App Service e IIS.
Para obtener ayuda con la configuración de la implementación de .NET, consulte Configuración de las opciones de implementación de .NET.
Para realizar la implementación en un nuevo destino, si ha creado previamente un perfil de publicación, seleccione Nuevo en la pantalla Publicar para el perfil configurado anteriormente. Aparece la herramienta Publicar.
Luego, elija una opción de implementación en la herramienta Publicar. Para obtener información sobre las opciones de publicación, consulte las secciones siguientes.
Desde Visual Studio, las aplicaciones se pueden publicar directamente en los siguientes destinos:
- Azure
- Registro de Contenedores de Docker
- DevTest Labs
- Carpeta
- servidor FTP/FTPS
- servidor web (IIS)
- Perfil de importación
Las opciones anteriores aparecen como se muestra en la ilustración siguiente al crear un nuevo perfil de publicación.
Para obtener un paseo rápido por las opciones de implementación de aplicaciones más generales, consulte Primer vistazo a la implementación.
Al elegir Azure, puede elegir entre:
- Azure App Service que se ejecuta en Windows, Linux o como una imagen de Docker
- Imagen de Docker implementada en azure Container Registry
- Una máquina virtual de Azure
azure Container Apps ayuda a los desarrolladores a crear y administrar aplicaciones y servicios web en contenedores.
Aunque puede implementar una aplicación en contenedores en Azure App Service, Azure Container Apps está optimizado para usar recursos de forma más eficaz para las aplicaciones en contenedores, por lo que hay ahorros de costos, así como otras ventajas de usar Azure Container Apps.
- Las aplicaciones y los servicios se ejecutan en un contenedor o en varios contenedores
- Necesita alta disponibilidad y escalado flexible.
- La aplicación es una buena opción para un patrón arquitectónico de microservicios, con su funcionalidad dividida en un conjunto de servicios modulares de una sola tarea implementados normalmente como Azure Functions. Por ejemplo, conjuntos de servicios de una sola tarea que se ejecutan como trabajos discretos, responden a eventos o procesan solicitudes de colas o activadores.
- Quiere las ventajas de la orquestación de contenedores (Kubernetes), pero no quiere administrar Kubernetes directamente. (Si desea un control profundo sobre la infraestructura de Kubernetes que admite los servicios en contenedores, considere la posibilidad de usar Azure Kubernetes Service (AKS).
azure App Service ayuda a los desarrolladores a crear rápidamente servicios y aplicaciones web escalables sin mantener la infraestructura. Un App Service se ejecuta en máquinas virtuales hospedadas en la nube en Azure, pero esas máquinas virtuales son gestionadas por ti. A cada aplicación de una instancia de App Service se le asignará una dirección URL *.azurewebsites.net única; todos los planes de tarifa distintos de Gratis permiten asignar nombres de dominio personalizados al sitio.
El usuario determina la potencia de computación de una instancia de App Service al elegir un plan de tarifa para la instancia de App Service que la contiene. Puede hacer que varias aplicaciones web (y otros tipos de aplicaciones) compartan el mismo Servicio de aplicaciones sin cambiar el plan de tarifa. Por ejemplo, puede hospedar aplicaciones web de desarrollo, almacenamiento provisional y producción juntas en la misma instancia de App Service.
- Quiere implementar una aplicación web accesible a través de Internet.
- Quiere escalar automáticamente la aplicación web según la demanda sin necesidad de volver a implementarla.
- Usted no quiere mantener la infraestructura del servidor (incluidas las actualizaciones de software).
- No necesita personalizaciones de nivel de máquina en los servidores que hospedan la aplicación web.
Si quiere usar Azure App Service en su propio centro de datos u otros equipos locales, puede hacerlo mediante la Azure Stack.
Para más información sobre la publicación en App Service, consulte:
- Inicio rápido: Publicación en Azure App Service
- Inicio rápido: Publicación de ASP.NET Core en Linux.
- Publicar una aplicación ASP.NET Core en Azure App Service
- Solución de problemas de ASP.NET Core en Azure App Service e IIS.
Azure WebJobs se admite mediante App Service. Consulte Desarrollo e implementación de WebJobs mediante Visual Studio.
- Tiene un proceso de trabajo, un cálculo que se puede ejecutar sin interacción del usuario.
- El trabajo es a petición, desencadenado por un evento o continuo.
- El trabajo se ejecuta en Windows o .NET Core en Linux (con Visual Studio 17.12 o posterior).
Otra opción para escenarios similares es Azure Functions. Para elegir la opción adecuada, consulte Elija los servicios de integración y automatización adecuados en Azure.
Azure Container Registry permite compilar, almacenar y administrar imágenes y artefactos de contenedor de Docker en un registro privado para todos los tipos de implementaciones de contenedor.
- Cuando ya tienes una canalización existente para el desarrollo e implementación de contenedores Docker.
- Cuando quieras construir imágenes de contenedor de Docker en Azure.
Para obtener más información:
azure Virtual Machines (VM) le permite crear y administrar cualquier número de recursos informáticos en la nube. Al asumir la responsabilidad de todo el software y las actualizaciones en las máquinas virtuales, puede personalizarlos tanto como desee según sea necesario para la aplicación. Puede acceder a las máquinas virtuales directamente a través de Escritorio remoto y cada una mantendrá su dirección IP asignada siempre que lo desee.
El escalado de una aplicación hospedada en máquinas virtuales implica poner en marcha máquinas virtuales adicionales según la demanda y, a continuación, implementar el software necesario. Este nivel de control adicional le permite escalar de forma diferente en diferentes regiones globales. Por ejemplo, si la aplicación atiende a los empleados en una variedad de oficinas regionales, puede escalar las máquinas virtuales según el número de empleados de esas regiones, lo que podría reducir los costos.
Para más información, consulte la comparación detallada entre Azure App Service, Azure Virtual Machines y otros servicios de Azure que puede usar como destino de implementación mediante la opción Personalizada en Visual Studio.
- Quiere implementar una aplicación web accesible a través de Internet, con control total sobre la duración de las direcciones IP asignadas.
- Necesita personalizaciones de nivel de máquina en los servidores, que incluyen software adicional, como un sistema de base de datos especializado, configuraciones de red específicas, particiones de disco, etc.
- Quiere un nivel de control preciso sobre el escalado de la aplicación web.
- Necesita acceso directo a los servidores que hospedan la aplicación por cualquier otro motivo.
Si quiere usar Azure Virtual Machines en su propio centro de datos u otros equipos locales, puede hacerlo mediante la Azure Stack.
Si la aplicación usa Docker, puede publicar la aplicación en contenedor en un registro de contenedor de Docker.
- Quiere implementar una aplicación en contenedor.
Para obtener más información, consulte lo siguiente:
- Implementación de un contenedor de ASP.NET en un registro de contenedor
- Implementación en Docker Hub
Use la opción Implementación de carpetas en la herramienta Publicar si desea implementar en Azure DevTest Labs.
Para ver los pasos completos, consulte Publicación de la aplicación para pruebas en una máquina virtual de Azure DevTest Labs. En el artículo vinculado, los pasos de publicación de carpetas se aplican a .NET Core/.NET 5+. El resto de las instrucciones se aplican a .NET y .NET Framework. En el caso de las aplicaciones ClickOnce de .NET Framework, puede usar el Asistente para publicación de para publicar en una carpeta.
La implementación en el sistema de archivos significa copiar los archivos de la aplicación en una carpeta específica en su propio equipo. La implementación en una carpeta se usa con más frecuencia con fines de prueba o para implementar la aplicación para su uso por un número limitado de personas si el equipo también ejecuta un servidor. Si la carpeta de destino se comparte en una red, la implementación en el sistema de archivos puede hacer que los archivos de aplicación web estén disponibles para otros usuarios que puedan implementarlos en servidores específicos.
A partir de Visual Studio 2019 16.8, el destino de la carpeta incluye la capacidad de publicar una aplicación windows de .NET mediante ClickOnce.
Si desea publicar un proyecto de escritorio de Windows de .NET (.NET Core 3.1, .NET 5 y versiones posteriores) con ClickOnce, consulte Implementación de una aplicación windows de .NET con ClickOnce.
Cualquier máquina local que ejecute un servidor puede hacer que la aplicación esté disponible a través de Internet o una intranet en función de cómo esté configurada y las redes a las que está conectada. (Si conecta un equipo directamente a Internet, tenga especial cuidado de protegerlo frente a amenazas de seguridad externas). Dado que administra estas máquinas, está en control completo de las configuraciones de software y hardware.
Si por algún motivo (como el acceso a la máquina) no puede usar servicios en la nube como Azure App Service o Azure Virtual Machines, puede usar la Azure Stack en su propio centro de datos. Azure Stack permite administrar y usar recursos informáticos a través de Azure App Service y Azure Virtual Machines, a la vez que mantiene todo en el entorno local.
Solo necesita implementar la aplicación en un recurso compartido de archivos desde el que otros lo implementarán en distintos servidores.
Quiere implementar una aplicación windows de .NET mediante ClickOnce.
Solo necesita una prueba de implementación local.
Desea examinar y modificar potencialmente los archivos de aplicación de forma independiente antes de enviarlos a otro destino de implementación.
Para obtener más información, consulte Inicio rápido: Implementación en una carpeta local.
Para obtener más información sobre la implementación de una aplicación windows de .NET mediante ClickOnce, consulte Implementación de una aplicación windows de .NET con ClickOnce.
Para obtener ayuda adicional para elegir la configuración, consulte lo siguiente:
- Implementación dependiente del marco frente a la implementación independiente
- Identificadores de entorno de ejecución de destino (RID portátil, etc.)
- Configuraciones Debug y Release
Un servidor FTP/FTPS le permite implementar la aplicación en un servidor distinto de Azure. Puede implementarse en un sistema de archivos o en cualquier otro servidor (Internet o Intranet) al que tenga acceso, incluidos los de otros servicios en la nube. Puede trabajar con la implementación web (archivos o .ZIP) y FTP.
Al elegir un servidor FTP/FTPS, Visual Studio le pide un nombre de perfil y, a continuación, recopila información adicional Conexión, incluido el servidor de destino o la ubicación, un nombre de sitio y credenciales. Puede controlar los siguientes comportamientos en pestaña Configuración:
- Configuración que desea implementar.
- Si se van a quitar los archivos existentes del destino.
- Si desea precompilar durante la publicación.
- Si se van a excluir archivos de la carpeta App_Data de la implementación.
Puede crear cualquier número de perfiles de implementación ftp/FTPS en Visual Studio, lo que permite administrar perfiles con diferentes configuraciones.
- Está usando servicios en la nube en un proveedor distinto de Azure al que se puede acceder a través de direcciones URL.
- Quiere implementar utilizando credenciales distintas de las que usa dentro de Visual Studio o de aquellas vinculadas directamente a sus cuentas de Azure.
- Si quieres eliminar archivos del destino cada vez que implementas.
Un servidor web de IIS le permite implementar la aplicación en un servidor web distinto de Azure. Se puede implementar en un servidor IIS (Internet o Intranet) al que tiene acceso, incluidos los de otros servicios en la nube. Puede trabajar con Web Deploy o con un paquete de Web Deploy.
Al elegir un servidor web IIS, Visual Studio le pide un nombre de perfil y, a continuación, recopila información adicional Conexión, incluido el servidor de destino o la ubicación, un nombre de sitio y credenciales. Puedes controlar los siguientes comportamientos en la pestaña Configuración:
- Configuración que desea implementar.
- Si se van a quitar los archivos existentes del destino.
- Decidir si se va a precompilar durante la publicación.
- Si se van a excluir archivos de la carpeta App_Data de la implementación.
Puede crear cualquier número de perfiles de implementación de servidor web de IIS en Visual Studio, lo que permite administrar perfiles con diferentes configuraciones.
- Está usando IIS para publicar un sitio o servicio al que se puede acceder a través de direcciones URL.
- Usted desea implementar utilizando otras credenciales que no sean las usadas en Visual Studio, o aquellas vinculadas directamente a sus cuentas de Azure.
- Quieres eliminar archivos del directorio de destino cada vez que implementas.
Para obtener más información, consulte Inicio rápido: Implementación en un sitio web.
Para obtener ayuda con la solución de problemas de ASP.NET Core en IIS, consulte Solución de problemas de ASP.NET Core en Azure App Service e IIS.
Puede importar un perfil al publicar en IIS o Azure App Service. Puedes configurar la implementación con un archivo de configuración de publicación (*.publishsettings). IIS o Azure App Service crean un archivo de configuración de publicación, o bien se puede crear manualmente y, a continuación, se pueden importar en Visual Studio.
El uso de un archivo de configuración de publicación puede simplificar la configuración de implementación y funciona mejor en un entorno de equipo frente a configurar manualmente cada perfil de implementación.
- Si publicas en IIS y quieres simplificar la configuración de la implementación.
- Va a publicar en IIS o Azure App Service y desea agilizar la configuración de implementación para que pueda ser reutilizada o para miembros de su equipo que publican en el mismo servicio.
Para obtener más información, consulte lo siguiente:
- Importar la configuración de publicación e implementar en IIS
- importar la configuración de publicación e implementar en Azure
Para obtener ayuda adicional para elegir la configuración, consulte lo siguiente:
- Despliegue dependiente del Framework frente a despliegue independiente
- Identificadores de runtime de destino (RID portátil, etc.)
- Configuraciones Debug y Release
Tutoriales: