Configurar un servidor web para la publicación de la implementación web (implementación sin conexión)

por Jason Lee

En este tema se describe cómo configurar un servidor web de IIS para admitir la publicación y la implementación web sin conexión.

Al trabajar con la Herramienta de implementación web (Web Deploy) 2.0 o posterior de Internet Information Services (IIS), hay tres enfoques principales que puede usar para obtener las aplicaciones o sitios en un servidor web. Puede:

  • Usar el servicio de Agente remoto de Web Deploy. Este enfoque requiere menos configuración del servidor web, pero hay que proporcionar las credenciales de un administrador de servidor local para implementar cualquier cosa en el servidor.
  • Usar el controlador de Web Deploy. Este enfoque es mucho más complejo y requiere más esfuerzo inicial para configurar el servidor web. Sin embargo, si se usa, puede configurar IIS para permitir que los usuarios que no son administradores lleven a cabo la implementación. El controlador de Web Deploy solo está disponible en la versión 7 o posterior de IIS.
  • Usar una implementación sin conexión. Este enfoque requiere la menor configuración del servidor web posible, pero un administrador del servidor debe copiar manualmente el paquete web en el servidor e importarlo a través del Administrador de IIS.

Para obtener más información sobre las principales características, ventajas y desventajas de estos enfoques, consulte Elegir el enfoque adecuado para la implementación web.

Sí, si la infraestructura de red o las restricciones de seguridad impiden la implementación remota. Esto es el caso más probable en entornos de producción accesibles desde Internet, donde los servidores web están aislados (físicamente o por firewalls y subredes) del resto de la infraestructura de servidor.

Obviamente, este enfoque resulta menos deseable si las aplicaciones web se actualizan periódicamente. Si la infraestructura lo permite, puede considerar la posibilidad de habilitar la implementación remota, ya sea mediante el controlador de Web Deploy o el servicio de Agente remoto de Web Deploy.

Información general sobre tareas

Para configurar el servidor web para admitir la importación y la implementación sin conexión de paquetes web, deberá hacer lo siguiente:

  • Instalar IIS 7.5 y la configuración recomendada de IIS 7.
  • Instalar Web Deploy 2.1 o posterior.
  • Crear un sitio web de IIS para hospedar el contenido implementado.
  • Deshabilitar el servicio de agente de implementación web.

Para hospedar la solución de ejemplo en concreto, también deberá hacer lo siguiente:

  • Instalar .NET Framework 4.0.
  • Instalar ASP.NET MVC 3.

En este tema se explica cómo realizar cada uno de estos procedimientos. En las tareas y tutoriales de este tema se da por hecho que el punto de partida es una compilación de servidor limpia que ejecuta Windows Server 2008 R2. Antes de continuar, asegúrese de lo siguiente:

  • Tiene instalado Windows Server 2008 R2 Service Pack 1 y todas las actualizaciones disponibles.
  • El servidor está unido a un dominio.
  • El servidor tiene una dirección IP estática.

Nota:

Para obtener más información sobre cómo unir equipos a un dominio, consulte Unir equipos al dominio e iniciar sesión. Para obtener más información sobre cómo configurar direcciones IP estáticas, consulte Configurar una dirección IP estática.

Instalar productos y componentes

Esta sección le guiará a través del proceso de instalación de los productos y componentes necesarios en el servidor web. Antes de empezar, se recomienda ejecutar Windows Update para asegurarse de que el servidor está totalmente actualizado.

En este caso, debe instalar lo siguiente:

  • Configuración recomendada de IIS 7. Esto habilita el rol Servidor web (IIS) en el servidor web e instala el conjunto de módulos y componentes de IIS necesarios para hospedar una aplicación de ASP.NET.
  • .NET Framework 4.0. Esto es necesario para ejecutar aplicaciones que se han compilado en esta versión de .NET Framework.
  • Herramienta de implementación web 2.1 o posterior. Esto instala Web Deploy (y el archivo ejecutable subyacente correspondiente, MSDeploy.exe) en el servidor. Web Deploy se integra con IIS y permite importar y exportar paquetes web.
  • ASP.NET MVC 3. Esto instala los ensamblados necesarios para ejecutar aplicaciones MVC 3.

Nota:

En este tutorial se describe el uso del Instalador de plataforma web para instalar y configurar los componentes necesarios. Aunque no tiene que usar el Instalador de plataforma web, simplifica el proceso de instalación, ya que detecta automáticamente las dependencias y garantiza que siempre va a tener las versiones más recientes del producto. Para obtener más información, consulte Instalador de plataforma web de Microsoft 3.0.

Para instalar los productos y componentes necesarios

  1. Descargue y ejecute el Instalador de plataforma web.

  2. Una vez completada la instalación, el Instalador de plataforma web se iniciará automáticamente.

    Nota:

    Ahora puede iniciar el Instalador de plataforma web en cualquier momento desde el menú Inicio. Para ello, en el menú Inicio, haga clic en Todos los programas y, a continuación, haga clic en Instalador de plataforma web de Microsoft.

  3. En la parte superior de la ventana Instalador de plataforma web 3.0, haga clic en Productos.

  4. En el lado izquierdo de la ventana, en el panel de navegación, haga clic en Marcos.

  5. En la fila Microsoft .NET Framework 4, si .NET Framework aún no está instalado, haga clic en Agregar.

    Nota:

    Es posible que ya haya instalado .NET Framework 4.0 a través de Windows Update. Si un producto o componente ya está instalado, el Instalador de plataforma web indicará esto reemplazando el botón Agregar por el texto Instalado.

    If a product or component is already installed, the Web Platform Installer will indicate this by replacing the Add button with the text Installed.

  6. En la fila ASP.NET MVC 3 (Visual Studio 2010), haga clic en Agregar.

  7. En el panel de navegación, haga clic en Servidor.

  8. En la fila Configuración recomendada de IIS 7, haga clic en Agregar.

  9. En la fila Herramienta de implementación web 2.1, haga clic en Agregar.

  10. Haga clic en Instalar. El Instalador de plataforma web le mostrará una lista de productos (junto con las dependencias asociadas) que se van a instalar y le pedirá que acepte los términos de licencia.

    Click Install. The Web Platform Installer will show you a list of products together with any associated dependencies to be installed and will prompt you to accept the license terms.

  11. Revise los términos de licencia y, si da su consentimiento, haga clic en Acepto.

  12. Una vez completada la instalación, haga clic en Finalizar y cierre la ventana Instalador de plataforma web 3.0.

Si instaló .NET Framework 4.0 antes de instalar IIS, deberá ejecutar la herramienta Registro de IIS en ASP.NET (aspnet_regiis.exe) para registrar la versión más reciente de ASP.NET con IIS. Si no lo hace, IIS servirá contenido estático (como archivos HTML) sin problemas, pero devolverá el error HTTP 404.0: No encontrado al intentar navegar a contenido de ASP.NET. Puede usar el procedimiento siguiente para asegurarse de que ASP.NET 4.0 está registrado.

Para registrar ASP.NET 4.0 con IIS

  1. Haga clic en Iniciar y escriba Símbolo del sistema.

  2. En los resultados de la búsqueda, haga clic con el botón derecho en Símbolo del sistema y, a continuación, haga clic en Ejecutar como administrador.

  3. En la ventana del símbolo del sistema, vaya al directorio %WINDIR%\Microsoft.NET\Framework\v4.0.30319.

  4. Escriba este comando y, después, presione Entrar:

    aspnet_regiis -iru
    
  5. Si planea hospedar aplicaciones web de 64 bits en algún momento, deberá registrar también la versión de 64 bits de ASP.NET con IIS. Para ello, en la ventana del símbolo del sistema, vaya al directorio %WINDIR%\Microsoft.NET\Framework64\v4.0.30319.

  6. Escriba este comando y, después, presione Entrar:

    aspnet_regiis -iru
    

Como procedimiento recomendado, use Windows Update de nuevo en este momento para descargar e instalar las actualizaciones disponibles de los nuevos productos y componentes que ha instalado.

Configurar el sitio web de IIS

Para poder implementar contenido web en el servidor, debe crear y configurar un sitio web de IIS para hospedar el contenido. Web Deploy solo puede implementar paquetes web en un sitio web de IIS que ya exista; es decir, no crea el sitio web automáticamente. En general, deberá completar estas tareas:

  • Crear una carpeta en el sistema de archivos para hospedar el contenido.
  • Crear un sitio web de IIS para servir el contenido y asociarlo a la carpeta local.
  • Conceder permisos de lectura a la identidad del grupo de aplicaciones en la carpeta local.

Aunque no hay nada que impida implementar contenido en el sitio web predeterminado en IIS, este enfoque no se recomienda en escenarios de prueba o demostración. Para simular un entorno de producción, debe crear un nuevo sitio web de IIS con la configuración específica de los requisitos de la aplicación.

Para crear y configurar un sitio web de IIS

  1. En el sistema de archivos local, cree una carpeta para almacenar el contenido (por ejemplo, C:\DemoSite).

  2. En el menú Inicio, seleccione Herramientas administrativas y, después, haga clic en Administrador de Internet Information Services (IIS).

  3. En el Administrador de IIS, en el panel Conexiones, expanda el nodo de servidor (por ejemplo, PROWEB1).

    In IIS Manager, in the Connections pane, expand the server node (for example, PROWEB1)

  4. Haga clic con el botón derecho en el nodoSitios y, a continuación, haga clic en Agregar sitio web.

  5. En el cuadro Nombre del sitio, escriba un nombre para el sitio web de IIS (por ejemplo, DemoSite).

  6. En el cuadro Ruta de acceso física, escriba (o busque) la ruta de acceso a la carpeta local (por ejemplo, C:\DemoSite).

  7. En el cuadro Puerto, escriba el número de puerto en el que desea hospedar el sitio web (por ejemplo, 85).

    Nota:

    Los números de puerto estándar son 80 para HTTP y 443 para HTTPS. Sin embargo, si hospeda este sitio web en el puerto 80, deberá detener el sitio web predeterminado para poder acceder a su sitio.

  8. Deje el cuadro Nombre de host en blanco, a menos que desee configurar un registro del Sistema de nombres de dominio (DNS) para el sitio web y, a continuación, haga clic en Aceptar.

    Leave the Host name box blank, unless you want to configure a Domain Name System (DNS) record for the website, and then click OK.

    Nota:

    En un entorno de producción, probablemente le interese hospedar el sitio web en el puerto 80 y configurar un encabezado host, junto con los registros DNS coincidentes correspondientes. Para obtener más información sobre cómo configurar encabezados host en IIS 7, consulte Configurar un encabezado host para un sitio web (IIS 7). Para obtener más información sobre el rol Servidor DNS en Windows Server 2008 R2, consulte Introducción al servidor DNS.

  9. En el panel Acciones, en Editar sitio, haga clic en Enlaces.

  10. En el cuadro de diálogo Enlaces de sitios , haga clic en Agregar.

    In the Site Bindings dialog box, click Add.

  11. En el cuadro de diálogo Agregar enlace de sitio, establezca Dirección IP y Puerto en los mismos valores que los de la configuración de sitio existente.

  12. En el cuadro Nombre de host, escriba el nombre del servidor web (por ejemplo, PROWEB1) y haga clic en Aceptar.

    In the Host name box, type the name of your web server (for example, PROWEB1), and then click OK.

    Nota:

    El primer enlace de sitio le permite acceder al sitio localmente mediante la dirección IP y el puerto o http://localhost:85. El segundo enlace de sitio le permite acceder al sitio desde otros equipos del dominio mediante el nombre de equipo (por ejemplo, http://proweb1:85).

  13. En el cuadro de diálogo Enlaces de sitios , haga clic en Cerrar.

  14. En el panel Conexiones, haga clic en Grupos de aplicaciones.

  15. En el panel Grupos de aplicaciones, haga clic con el botón derecho en el nombre del grupo de aplicaciones y, a continuación, haga clic en Configuración básica. De forma predeterminada, el nombre del grupo de aplicaciones será el mismo que el nombre del sitio web (por ejemplo, DemoSite).

  16. En la lista Versión de .NET Framework, seleccione .NET Framework v4.0.30319 y, a continuación, haga clic en Aceptar.

    In the .NET Framework version list, select .NET Framework v4.0.30319, and then click OK.

    Nota:

    La solución de ejemplo requiere .NET Framework 4.0. Esto no es un requisito para Web Deploy en general.

Para que el sitio web sirva contenido, la identidad del grupo de aplicaciones debe tener permisos de lectura en la carpeta local que almacena el contenido. En IIS 7.5, los grupos de aplicaciones se ejecutan de forma predeterminada con una identidad de grupo de aplicaciones única (a diferencia de las versiones anteriores de IIS, donde los grupos de aplicaciones solían ejecutarse con la cuenta de servicio de red). La identidad del grupo de aplicaciones no es una cuenta de usuario real y no aparece en ninguna lista de usuarios o grupos; en su lugar, se crea dinámicamente cuando se inicia el grupo de aplicaciones. Cada identidad del grupo de aplicaciones se agrega al grupo de seguridad local IIS_IUSRS como un elemento oculto.

Para conceder permisos a una identidad del grupo de aplicaciones en un archivo o carpeta, tiene dos opciones:

  • Asignar permisos a la identidad del grupo de aplicaciones directamente usando el formato IIS AppPool[nombre del grupo de aplicaciones] (por ejemplo, IIS AppPool\DemoSite).
  • Asignar permisos al grupo IIS_IUSRS.

El enfoque más común es asignar permisos al grupo IIS_IUSRS local, ya que este enfoque permite cambiar los grupos de aplicaciones sin tener que volver a configurar los permisos del sistema de archivos. En el siguiente procedimiento se usa este enfoque basado en grupo.

Nota:

Para obtener más información sobre las identidades de grupos de aplicaciones en IIS 7.5, consulte Identidades de grupos de aplicaciones.

Para configurar permisos de carpeta para un sitio web de IIS

  1. En el Explorador de Windows, vaya a la ubicación de la carpeta local.

  2. Haga clic con el botón secundario en la carpeta y, a continuación, haga clic en Propiedades.

  3. En la pestaña Seguridad, haga clic en Editary, a continuación, haga clic en Agregar.

  4. Haga clic en Ubicaciones. En el cuadro de diálogo Ubicaciones, seleccione el servidor local y, a continuación, haga clic en Aceptar.

    Click Locations. In the Locations dialog box, select the local server, and then click OK.

  5. En el cuadro de diálogo Seleccionar usuarios o grupos, escriba IIS_IUSRS, haga clic en Comprobar nombres y, a continuación, haga clic en Aceptar.

  6. En el cuadro de diálogo Permisos para (nombre de carpeta), fíjese en que el nuevo grupo tiene asignados de forma predeterminada los permisos Leer y ejecutar, Enumerar contenido de carpeta y Leer. Déjelo tal cual y haga clic en Aceptar.

  7. Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de (nombre de carpeta).

Deshabilitar el servicio de agente remoto

Al instalar Web Deploy, el servicio de agente de implementación web se instala e inicia automáticamente. Este servicio permite implementar y publicar paquetes web desde una ubicación remota. No usará la funcionalidad de implementación remota en este escenario, por lo que debe detener y deshabilitar el servicio.

Nota:

No es necesario detener el servicio de Agente remoto para importar e implementar manualmente un paquete web. Sin embargo, es recomendable detener y deshabilitar el servicio si no tiene previsto usarlo.

Puede detener y deshabilitar un servicio de varias maneras, mediante varias utilidades de línea de comandos o cmdlets de Windows PowerShell. En este procedimiento se describe un enfoque sencillo basado en la interfaz de usuario.

Para detener y deshabilitar el servicio de agente remoto

  1. En menú Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Servicios.

  2. En la consola de servicios, busque la fila Servicio de agente de implementación web.

    In the Services console, locate the Web Deployment Agent Service row.

  3. Haga clic con el botón derecho en Servicio de agente de implementación web y, a continuación, haga clic en Propiedades.

  4. En el cuadro de diálogo Propiedades del Servicio de agente de implementación web, haga clic en Detener.

  5. En la lista Tipo de inicio, seleccione Deshabilitado y, a continuación, haga clic en Aceptar.

    In the Startup type list, select Disabled, and then click OK.

Conclusión

En este momento, el servidor web está listo para la implementación de paquetes web sin conexión. Antes de intentar importar paquetes web a un sitio web de IIS, es posible que desee comprobar estos puntos clave:

  • ¿Ha registrado ASP.NET 4.0 con IIS?
  • ¿La identidad del grupo de aplicaciones tiene acceso de lectura a la carpeta de origen del sitio web?
  • ¿Ha detenido el servicio de agente de implementación web?