Compartir a través de


Tutorial: Implementar una aplicación Web ASP.NET mediante XCOPY

Actualización: noviembre 2007

La implementación de aplicaciones ASP.NET es un proceso muy sencillo. Simplemente debe copiar los archivos de la aplicación creados del equipo de desarrollo al servidor Web de producción que alojará la aplicación. Para copiar de una ubicación a otra, puede utilizar la herramienta de la línea de comandos XCOPY o su aplicación FTP preferida. Para obtener más información acerca de la implementación general, vea Fundamentos de implementación de .NET Framework.

Nota:

Como alternativa al uso de la herramienta XCOPY de la línea de comandos, que es compatible con todas las versiones de .NET Framework, puede utilizar la nueva herramienta de .NET Framework 2.0 ubicada en %SystemRoot%\Microsoft.NET\Framework\version 2 or later\Aspnet_compiler.exe para compilar e implementar la aplicación Web. Para obtener más información, vea Herramienta de compilación de ASP.NET (Aspnet_compiler.exe).

Los ensamblados que desea compartir entre las aplicaciones Web, como los ensamblados que contienen controles personalizados de servidor ASP.NET, deben implementarse en la caché de ensamblados global (GAC) en un servidor remoto.

Si implementa una aplicación que contiene una referencia a un componente personalizado registrado en la caché de ensamblados global del servidor local, el componente no se implementará con la aplicación en el servidor remoto. Tendrá que instalar el componente en la caché de ensamblados global en el servidor remoto, o bien puede copiar el componente personalizado a la carpeta Bin de la aplicación Web local antes de la implementación.

Para obtener más información, vea Caché de ensamblados global. Para obtener más información sobre ensamblados, vea Programar con ensamblados.

Algunas herramientas de desarrollo como Visual Web Developer disponen de herramientas que facilitan la implementación de sus aplicaciones.

Requisitos previos

Para poder completar este tutorial, necesitará:

  • El entorno .NET Framework.

  • Un sitio Web de ASP.NET existente. Si ya tiene este tipo de sitio configurado, podrá utilizarlo como punto de partida para este tutorial. De lo contrario, para obtener información acerca de cómo crear un directorio o sitio virtual, vea Cómo: Crear y configurar directorios virtuales en IIS 5.0 y 6.0.

  • Un destino que sea accesible mediante una ruta de acceso de archivo o una ruta UNC.

Nota:

En este tutorial no se da por supuesto que está utilizando un diseñador, como Visual Web Developer o Visual Studio.

Preparación

Utilice estos procedimientos si va a implementar un sitio Web grande y desea que el sitio Web de destino esté sin conexión mientras copia archivos.

Para poner una aplicación Web sin conexión antes de la implementación

  1. Cree un archivo denominado App_offline.htm y colóquelo en la raíz del sitio Web de destino.

  2. Ponga un mensaje descriptivo en el archivo App_offline.htm para que los clientes sepan que está actualizando el sitio.

    Mientras el archivo App_offline.htm exista, cualquier solicitud al sitio Web se redirigirá al archivo.

    Nota importante:

    Recuerde quitar el archivo App_offline.htm cuando haya terminado de copiar los archivos.

Cuando se realizan cambios en algunos tipos de archivo y carpetas, se reinicia el dominio de aplicación. Puede configurar el número de segundos que la aplicación espera otra notificación de cambios de archivo antes de reiniciar el dominio de aplicación.

Para reducir al mínimo el número de veces que se reinicia el dominio de aplicación

  1. Abra el archivo Web.config de la aplicación Web. Si no tiene un archivo Web.config, puede crear uno utilizando el código siguiente.

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    

    Para obtener más información, vea Archivos de configuración de ASP.NET.

  2. Agregue un elemento Elemento httpRuntime (Esquema de configuración de ASP.NET) al archivo Web.config y establezca los atributos waitChangeNotification en cualquier número de segundos que sea superior al tiempo que transcurre entre las actualizaciones de dos notificaciones de cambio de copia de archivos. Por ejemplo, el elemento httpRuntime podría ser similar al código siguiente.

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
        <httpRuntime       waitChangeNotification="5"    />
      </system.web>
    </configuration>
    
  3. Agregue un atributo maxWaitChangeNotification al elemento httpRuntime y establézcalo en el número máximo de segundos que se esperará desde la primera notificación de cambio de archivos antes de que se reinicie el dominio de aplicación. Establézcalo en un número que supere el tiempo que tarda en completarse cualquier proceso de copia de archivo. Las notificaciones de cambios de archivo se combinan basándose en el valor de este atributo y del atributo waitChangeNotification. Por ejemplo, el elemento httpRuntime podría ser similar al código siguiente.

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
        <httpRuntime 
          waitChangeNotification="5"
          maxWaitChangeNotification="10"
        />
      </system.web>
    </configuration>
    

Para implementar una aplicación Web ASP.NET utilizando XCOPY desde la línea de comandos

  1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar.

  2. En el cuadro Abrir del cuadro de diálogo Ejecutar, escriba cmd y haga clic en Aceptar.

  3. En el símbolo del sistema, escriba el siguiente comando:

    xcopy /I /S<source path> <destination path>
    

    En este comando, <source path> es la ruta de acceso completa a la aplicación Web y <destination path> es la ruta de acceso completa al directorio donde se implementará la aplicación.

    Nota:

    Con la herramienta XCOPY es necesario utilizar nombres del directorio físico. No se pueden utilizar los nombres del directorio virtual.

    El parámetro /S copia todos los subdirectorios y los archivos que contienen.

    El parámetro /I indica que se copia un directorio. Si la carpeta de destino no existe, XCOPY creará una.

    En el ejemplo de comando siguiente se copian todos los archivos del directorio c:\inetpub\wwwroot\devapp al directorio d:\publicsites\liveapp.

    Xcopy /I /Sc:\inetpub\wwwroot\devapp d:\publicsites\liveapp
    
  4. El comando podría hacer una pausa para que conteste a una pregunta como "¿Desea sobrescribir filename (Sí/No/Todos)?" de manera que pueda escribir su respuesta.

    Puede excluir de la copia los subdirectorios, que son archivos con una extensión concreta, o determinados archivos mediante la opción /EXCLUDE de XCOPY. Para obtener más información al respecto y conocer los parámetros, vea Xcopy en la ventana Ayuda y soporte técnico que está disponible en el menú Inicio, o escriba xcopy /? en la línea de comandos.

Para implementar o actualizar archivos individuales de una aplicación Web ASP.NET desde la línea de comandos

  1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar.

  2. En el cuadro Abrir del cuadro de diálogo Ejecutar, escriba cmd y haga clic en Aceptar.

  3. En el símbolo del sistema, escriba el siguiente comando:

    xcopy <source path> <destination path>
    

    En este comando, <source path> es la ruta de acceso completa al archivo de código fuente que desea copiar y <destination path> es la ruta de acceso completa al directorio donde se situará el archivo copiado.

    En el siguiente comando de ejemplo se copia un único archivo DLL de un directorio \Bin de una unidad a un directorio \Bin de otra unidad.

    Xcopy c:\inetpub\wwwroot\devapp\bin\sampleAssembly.dll d:\publicsites\liveapp\bin
    

    En el comando de ejemplo siguiente se copian todos los archivos DLL de un directorio Bin de una unidad a un directorio Bin de otra unidad.

    Xcopy c:\inetpub\wwwroot\devapp\bin\*.dll d:\publicsites\liveapp\bin
    
  4. El comando podría hacer una pausa para que conteste a una pregunta como "¿Desea sobrescribir filename (Sí/No/Todos)?" de manera que pueda escribir su respuesta.

Vea también

Tareas

Tutorial: Desarrollar y utilizar un control de servidor personalizado

Tutorial: Crear directorios raíz de una aplicación web ASP.NET en IIS 6.0

Conceptos

Diseño de sitios Web ASP.NET

Publicar e implementar servicios web XML

Otros recursos

Crear sitios web ASP.NET

Implementar aplicaciones de .NET Framework