Obtener la configuración de publicación de IIS e importarla a Visual Studio

Puede usar la herramienta Publicar para importar la configuración de publicación y después implementar la aplicación. En este artículo, usaremos la configuración de publicación para IIS.

Estos pasos son igualmente válidos en las aplicaciones web ASP.NET y ASP.NET Core.

Nota

Un archivo de configuración de publicación (*.publishsettings) es diferente a un perfil de publicación (*.pubxml). Un archivo de configuración de publicación se crea mediante IIS y después puede importarse a Visual Studio. Visual Studio crea el perfil de publicación.

Prerrequisitos

  • Visual Studio instalado con la carga de trabajo ASP.NET y desarrollo web. Si ya ha instalado Visual Studio:

    • Para instalar las actualizaciones más recientes de Visual Studio, seleccione Ayuda>Buscar actualizaciones.
    • Para agregar la carga de trabajo, seleccione Herramientas>Obtener herramientas y características.
  • En el servidor, debe ejecutar Windows Server 2012 o Windows Server 2016, y tener el rol de servidor web de IIS configurado correctamente (necesario para generar el archivo de configuración de publicación (*.publishsettings)). También se debe instalar ASP.NET 4.5 o ASP.NET Core en el servidor. Los pasos de este tutorial se probaron en Windows Server 2022.

    Nota

    IIS en Windows no admite la generación de la configuración de publicación. Sin embargo, sí puede seguir publicando en IIS mediante la herramienta Publicar de Visual Studio.

Instalar y configurar Web Deploy o Windows Server

Web Deploy proporciona características de configuración adicionales que permiten la creación del archivo de configuración de publicación de la interfaz de usuario.

Nota

El Instalador de plataforma web alcanzó el final del ciclo de vida el 1/7/22. Para más información, vea Instalador de plataforma web: fin del soporte técnico y puesta en ejecución de la fuente de productos o aplicaciones. Puede instalar directamente Web Deploy 4.0 para crear el archivo de configuración de publicación.

  1. Si aún no ha instalado Herramientas y scripts de administración de IIS, hágalo ahora.

    Vaya a Seleccionar roles de servidor>Servidor web (IIS)>Herramientas de administración y después seleccione el rol Herramientas y scripts de administración de ISS, haga clic en Siguiente y después instale el rol.

    Install IIS Management Scripts and Tools

    Los scripts y herramientas son necesarios para habilitar la generación del archivo de configuración de publicación.

    Asegúrese de instalar también el Servicio de administración y la Consola de administración de IIS (es posible que ya estén instalados).

  2. En Windows Server, descargue Web Deploy 4.0.

  3. Ejecute el programa de instalación de Web Deploy y asegúrese de seleccionar el tipo de instalación Completa en lugar de una instalación típica.

    Con una instalación completa, obtendrá los componentes que necesita para generar un archivo de configuración de publicación. (Si elige Personalizada en su lugar, puede ver la lista de componentes, como se muestra en la ilustración siguiente).

    Screenshot showing Web Deploy 4.0 components

  4. (Opcional) Compruebe que Web Deploy se ejecuta correctamente abriendo Panel de Control > Sistema y seguridad > Herramientas administrativas > Servicios y asegúrese de lo siguiente:

    • El servicio Agente de implementación web se está ejecutando (el nombre del servicio es diferente en las versiones anteriores).

    • Servicio de administración web se está ejecutando.

    Si uno de los servicios del agente no se está ejecutando, reinicie el servicio Agente de implementación web.

    Si el servicio Agente de implementación web no está presente en absoluto, vaya a Panel de Control > Programas > Desinstalar un programa y busque Microsoft Web Deploy <versión>. Elija Cambiar la instalación y asegúrese de que elige Will be installed to the local hard drive (Se instalará en la unidad de disco duro local) para los componentes de Web Deploy. Complete los pasos de instalación de cambio.

Crear el archivo de configuración de publicación en IIS en Windows Server

  1. Cierre y vuelva a abrir la consola de administración de IIS para mostrar las opciones de configuración actualizadas en la interfaz de usuario.

  2. En IIS, haga clic en el Sitio web predeterminado, elija Implementar>Configurar publicación de implementación en Web Deploy.

    Configure Web Deploy configuration

    Si no ve el menú Implementar, consulte la sección anterior para comprobar que Web Deploy se está ejecutando.

  3. En el cuadro de diálogo Configurar implementación de publicación en Web Deploy, examine la configuración.

  4. Haga clic en Configuración.

    En el panel Resultados, el resultado muestra que los derechos de acceso se conceden al usuario especificado y que se ha generado un archivo con una extensión .publishsettings en la ubicación que se muestra en el cuadro de diálogo.

    <?xml version="1.0" encoding="utf-8"?>
    <publishData>
      <publishProfile
        publishUrl="https://myhostname:8172/msdeploy.axd"
        msdeploySite="Default Web Site"
        destinationAppUrl="http://myhostname:80/"
        mySQLDBConnectionString=""
        SQLServerDBConnectionString=""
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    Según la configuración de Windows Server e IIS, verá valores diferentes en el archivo XML. A continuación se detalla alguna información acerca de los valores que verá:

    • El archivo msdeploy.axd al que hace referencia el atributo publishUrl es un archivo de controlador HTTP generado dinámicamente para Web Deploy. (Para fines de pruebas, http://myhostname:8172 generalmente funciona bien.)

    • El puerto publishUrl se establece en el puerto 8172, que es el valor predeterminado de Web Deploy.

    • El puerto destinationAppUrl se establece en el puerto 80, que es el valor predeterminado de IIS.

    • Si, en pasos posteriores, no puede conectarse al host remoto desde Visual Studio con el nombre de host, pruebe la dirección IP del servidor en lugar del nombre de host.

      Nota

      Si va a publicar en IIS ejecutándose en una máquina virtual de Azure, debe abrir un puerto de entrada para Web Deploy e IIS en el grupo de seguridad de red. Para obtener información detallada, consulte Apertura de puertos en una máquina virtual con Azure Portal.

  5. Copie este archivo en el equipo donde se ejecuta Visual Studio.

Importar la configuración de publicación a Visual Studio e implementar

  1. En el equipo donde tiene el proyecto de ASP.NET abierto en Visual Studio, haga clic con el botón derecho en el proyecto en el Explorador de soluciones y elija Publicar.

    Si previamente ha configurado algún perfil de publicación, aparece el panel Publicar. Haga clic en Nuevo o en Crear nuevo perfil.

  2. Seleccione la opción para importar un perfil.

    En el cuadro de diálogo Importar, haga clic en Importar perfil.

    Choose Publish

  3. Navegue hasta la ubicación del archivo de configuración de publicación que creó en la sección anterior.

  4. En el cuadro de diálogo Importar archivo de configuración de publicación, vaya al perfil que creó en la sección anterior, selecciónelo y haga clic en Abrir.

    Haga clic en Finalizar para guardar el perfil de publicación y, a continuación, haga clic en Publicar.

    Visual Studio comienza el proceso de implementación y la ventana Salida muestra el progreso y los resultados.

    Si recibe errores de implementación, haga clic en Más acciones>Editar para editar la configuración. Modifique la configuración y haga clic en Validar para probar la nueva configuración. Si no se encuentra el nombre de host, pruebe la dirección IP en lugar del nombre de host en los campos Servidor y Dirección URL de destino.

    Edit settings in the Publish tool

Después de que se implemente la aplicación correctamente, debería iniciarse automáticamente.

Problemas comunes

En primer lugar, consulte en la ventana Salida de Visual Studio la información sobre el estado y compruebe los mensajes de error. Asimismo:

  • Si no puede conectarse al host con el nombre, pruebe con la dirección IP.
  • Asegúrese de que los puertos necesarios estén abiertos en el servidor remoto.
  • Con ASP.NET Core, en IIS deberá asegurarse de que el campo Grupo de aplicaciones para el DefaultAppPool está establecido en Sin código administrado.
  • Compruebe que la versión de ASP.NET que se usa en la aplicación sea la misma que la que ha instalado en el servidor. Para la aplicación, puede consultar y establecer la versión en la página Propiedades. Para establecer la aplicación en una versión diferente, debe instalar la versión en cuestión.
  • Si la aplicación ha intentado abrirse, pero ve una advertencia de certificado, seleccione la opción de confiar en el sitio. Si ya ha cerrado la advertencia, puede editar el archivo *.pubxml en el proyecto y agregar el elemento siguiente: <AllowUntrustedCertificate>true</AllowUntrustedCertificate>. ¡Esta configuración es solo para pruebas!
  • Si la aplicación no se inicia desde Visual Studio, iníciela en IIS para probar que se haya implementado correctamente.