Información general sobre la implementación de ASP.NET

Actualización: noviembre 2007

Tras desarrollar un sitio Web, puede implementarlo en un servidor Web para probarlo (un servidor provisional) o en un servidor donde los usuarios puedan trabajar con el sitio (un servidor de producción). Dispone de varias opciones para implementar un sitio web, lo que incluye su precompilación.

Este tema contiene:

  • Escenarios

  • Características de implementación

  • Información general

  • Ejemplos de código

Escenarios

Después de desarrollar un sitio web en Visual Studio, puede seleccionar uno de estos métodos de implementación:

  • Copie los archivos del sitio web en el servidor de destino mediante las herramientas de Visual Studio.

  • Precompile el sitio y copie el resultado en una ubicación que especifique, como un servidor de producción.

Volver al principio

Características

Visual Studio proporciona las opciones siguientes para implementar un sitio web:

  • La herramienta Copiar sitio web, que copia el sitio web actual en el servidor de destino.

  • La utilidad Publicar sitio web, que compila un sitio web en un conjunto de archivos ejecutables. A continuación, puede copiar los archivos en el servidor de destino mediante el método que desee.

    Nota:

    La utilidad Publicar sitio web no está disponible en Microsoft Visual Web Developer Express.

Volver al principio

Información general

Visual Studio proporciona la herramienta Copiar sitio web, que copia archivos del sitio web actual en el servidor de destino. También proporciona la utilidad Publicar sitio web, que compila un sitio web en un conjunto de archivos ejecutables. A continuación, puede copiar los archivos en el servidor de destino mediante el método que desee.

Nota:

También puede crear sitios web mediante un proyecto de aplicación web. En un proyecto de aplicación web, todos los archivos de clase se compilan en un único ensamblado. Para obtener más información, vea Información general sobre proyectos de aplicaciones web.

Además de crear un sitio web e implementarlo en un servidor de destino, también puede crear un sitio web de Protocolo de transferencia de archivos (FTP). En ese caso, crea y modifica los archivos directamente en el servidor de destino. Ésta es una manera conveniente de trabajar con un sitio web en un servidor hospedado.

La herramienta Copiar sitio web

La herramienta Copiar sitio web es similar a una utilidad de FTP. Puede abrir una carpeta en un servidor de destino y, a continuación, cargar y descargar archivos entre el sitio web actual y el sitio web de destino. La herramienta Copiar sitio web es compatible con una característica de sincronización que examina los archivos de los dos sitios web y garantiza automáticamente que las versiones de los archivos están actualizadas en ambos sitios.

Nota:

Si el servidor de destino es un servidor FTP, puede abrir y editar los archivos en el servidor creando un sitio Web FTP. Para obtener más información, vea Sitios Web implementados en FTP.

La herramienta Copiar sitio web admite las características siguientes:

  • Puede copiar archivos de código fuente, incluidos los archivos .aspx y archivos de clase, en el servidor de destino. En este escenario, las páginas web se compilan dinámicamente cuando se solicitan.

  • Puede abrir y copiar archivos desde cualquier tipo de sitio web que se admita en Visual Studio. Esto incluye los sitios web de Internet Information Services (IIS) local, IIS remoto y FTP. No es necesario que el servidor de destino tenga las Extensiones de servidor de FrontPage.

  • La característica de sincronización examina los archivos de los dos sitios web y garantiza automáticamente que las versiones de los archivos están actualizadas en ambos sitios.

  • Antes de copiar los archivos de aplicación, la herramienta Copiar sitio web coloca un archivo denominado App_offline.htm en el directorio raíz del sitio web de destino. Mientras el archivo App_offline.htm exista, cualquier solicitud al sitio web se redirigirá a él. El archivo muestra un mensaje descriptivo que indica a los clientes que el sitio web se está actualizando. Una vez que se han copiado todos los archivos del sitio web, la herramienta Copiar sitio web elimina el archivo App_offline.htm del sitio web de destino.

La utilidad Publicar sitio web

La utilidad Publicar sitio web precompila el contenido del sitio web, incluidas las páginas web (archivos .aspx) y el código. A continuación, copia el resultado en un directorio o ubicación de servidor que especifique. Puede publicar directamente como parte del proceso de precompilación. También puede precompilar localmente y, a continuación, copiar los archivos manualmente. La utilidad de publicación de sitios Web compila el sitio Web y elimina el código fuente de los archivos, y sólo deja los archivos de código auxiliar de las páginas y los ensamblados compilados. Cuando los usuarios solicitan las páginas, ASP.NET da servicio a la solicitud desde los ensamblados precompilados.

Nota:

La utilidad Publicar sitio web no está disponible en Microsoft Visual Web Developer Express.

Proyectos de aplicaciones Web

Como alternativa al uso de Publicar sitio web, puede crear sitios web mediante un proyecto de aplicación web. En un proyecto de aplicación web, todos los archivos de clase se compilan en un único ensamblado. Sólo se debe implementar este ensamblado, junto con los archivos .aspx y .ascx y otros archivos de contenido estático. (Este modelo de proyecto de aplicación web es similar al modelo que se utiliza en Visual Studio .NET 2003.) En este modelo, los archivos .aspx no se compilan hasta que se ejecutan en el explorador. Para obtener más información sobre proyectos de aplicaciones web, vea Información general sobre proyectos de aplicaciones web.

Elegir una herramienta de implementación

La elección de la herramienta Copiar sitio web o de la utilidad Publicar sitio web depende de cómo desee utilizar y mantener el sitio.

Elegir la herramienta Copiar sitio Web

A continuación se indican las ventajas de la herramienta Copiar sitio web:

  • La implementación supone simplemente copiar los archivos desde el sitio web al equipo de destino.

  • Puede implementar en un equipo de destino utilizando cualquier protocolo de conexión que admita Visual Studio. Puede copiar en una carpeta compartida de otro equipo de la red. Puede utilizar FTP para copiar en un servidor o utilizar el protocolo HTTP para copiar en un servidor que admita Extensiones de servidor de FrontPage.

  • También es posible realizar cambios o corregir errores en las páginas directamente en el servidor.

  • Si trabaja en un proyecto donde los archivos se almacenan en un servidor centralizado, puede utilizar la característica de sincronización para asegurarse de que las versiones local y remota de los archivos están sincronizadas.

A continuación se indican los inconvenientes de la herramienta Copiar sitio web:

  • El sitio se copia tal cual. Por lo tanto, si algún archivo contiene un error de compilación, el error no se detectará hasta que alguien (quizá un usuario) ejecute la página en la que existe el error.

Elegir la utilidad Publicar sitio Web

A continuación se indican las ventajas de la utilidad Publicar sitio web:

  • El proceso de precompilación ayuda a encontrar errores de compilación y posibles errores en el archivo Web.config y en otros archivos que no son de código.

  • El código fuente se quita del sitio web, incluido, si se desea, el marcado de los archivos web y los controles de usuario de ASP.NET. De esta forma, el contenido queda más protegido y resulta más difícil que otros usuarios tengan acceso al código fuente del sitio.

  • Como las páginas del sitio ya están compiladas, no necesitan compilarse dinámicamente cuando se solicitan por primera vez. Esto puede reducir el tiempo de respuesta inicial para una página. (Cuando se compilan las páginas dinámicamente, el resultado se almacena en la memoria caché para las solicitudes posteriores.)

A continuación se indican los inconvenientes de la utilidad Publicar sitio web:

  • En función de las opciones de publicación que especifique, es posible que deba volver a compilar el sitio si realiza cambios en él. Por tanto, puede que no resulte práctico emplear la utilidad Publicar sitio web si desarrolla un sitio y cambia las páginas con frecuencia.

  • La utilidad Publicar sitio web no puede implementar el sitio compilado en un servidor remoto. Sólo puede copiar en el equipo local o en otro equipo de la red de área local.

    Nota:

    La utilidad Publicar sitio web sobrescribe los archivos de la carpeta de destino y de las subcarpetas. Asegúrese de publicar en una ubicación en la que no sea un problema eliminar el contenido existente.

Usar la herramienta Copiar sitio web

Puede utilizar la herramienta Copiar sitio web para mover archivos desde el equipo local a un servidor temporal o a un servidor de producción. La herramienta Copiar sitio web es especialmente útil cuando no puede abrir los archivos desde el sitio remoto para editarlos. Puede utilizar la herramienta Copiar sitio web para copiar archivos en el equipo local, editarlos y copiarlos otra vez en el sitio remoto. También puede utilizar la herramienta para copiar archivos de un servidor de ensayo a un servidor de producción cuando haya terminado su proceso de desarrollo.

Nota:

Si copia una aplicación que contiene una referencia a un componente personalizado registrado en la GAC, el componente no se copiará con la aplicación. Para obtener más información, vea Cómo: Agregar una referencia a un componente .NET o COM en un sitio Web.

Sitios de origen y sitios remotos

La herramienta Copiar sitio Web copia archivos entre un sitio de origen y un sitio remoto. Estos términos se utilizan para distinguir los dos sitios con los que trabaja la herramienta. Los términos se utilizan con estos significados:

  • Sitio de origen   El sitio de origen es el sitio que tiene actualmente abierto en Visual Studio.

  • Sitio remoto   El sitio remoto es el sitio en el que desea copiar archivos. Un sitio remoto puede ser una ubicación en otro equipo al que puede tener acceso mediante las Extensiones de servidor de FrontPage o FTP. En estos casos, el sitio es realmente remoto. Sin embargo, el sitio remoto también puede ser otro sitio en su propio equipo. Por ejemplo, puede publicar desde un sitio Web del sistema de archivos de su equipo en un sitio Web de ISS local que está también en su equipo. En este caso, aunque el sitio es local en su equipo, es el sitio remoto cuando utiliza la herramienta Copiar sitio web.

Observe que el sitio de origen no es necesariamente el origen del que se copia. Se puede copiar del sitio remoto al sitio de origen.

Sincronizar los sitios

Al sincronizar, se examinan los archivos de los sitios local y remoto y se asegura que todos los archivos de ambos sitios están actualizados. Por ejemplo, si un archivo en un sitio remoto es más actual que la versión del mismo archivo en el sitio de origen, al sincronizar los archivos se copia el archivo del sitio remoto en el sitio de origen.

La herramienta Copiar sitio Web no combina archivos que tienen el mismo nombre pero diferente contenido. En ese caso, la sincronización permite especificar qué versión del archivo se desea mantener.

La sincronización hace que la herramienta resulte útil para un entorno de varios programadores en el que éstos mantienen copias del sitio web en sus equipos locales. Los programadores individuales pueden copiar los últimos cambios en un servidor remoto compartido. Al mismo tiempo, pueden actualizar su equipo local con archivos cambiados de otros programadores. Los nuevos programadores de un proyecto también pueden obtener rápidamente copias de todos los archivos para un sitio web. Para esto, pueden crear un sitio web local en el equipo local y, a continuación, sincronizar con el sitio en el servidor compartido.

Estado de los archivos

Para sincronizar archivos, la herramienta Copiar sitio Web necesita información sobre el estado de los archivos en ambos sitios. Por tanto, la herramienta mantiene información que consta de las marcas de tiempo de los archivos más la información adicional que se necesita para realizar la sincronización. Por ejemplo, la herramienta mantiene una lista de cuándo fue la última vez que se modificaron los archivos, lo que le permite a la herramienta determinar, por ejemplo, si se ha eliminado un archivo.

Cuando se conecta a un sitio (o lo actualiza), la herramienta compara las marcas de tiempo de los archivos en ambos sitios así como la información que ha almacenado para ambos sitios. A continuación, crea un informe sobre el estado de cada archivo. En la siguiente tabla se muestra el estado de los archivos.

Estado

Descripción

Sin cambios

El archivo no ha cambiado desde la última vez que se copió.

Modificado

El archivo tiene una marca de hora más reciente que la marca de hora que se tomó cuando se copió el archivo por última vez.

Nuevo

Se ha agregado el archivo desde la última vez que se copió el sitio.

Eliminado

Se ha eliminado el archivo desde la última vez que se copió el sitio. Si selecciona Mostrar archivos eliminados en la herramienta Copiar sitio Web, en la ventana se muestra una entrada para el archivo.

Usar la utilidad Publicar sitio web

La utilidad Publicar sitio web permite publicar los sitios web. Esta utilidad compila el sitio y copia el resultado en una ubicación que especifique, como un servidor de producción.

Nota:

La utilidad Publicar sitio web no está disponible en Visual Web Developer Express.

Al publicar, se llevan a cabo las siguientes tareas:

  • Se precompilan las páginas, el código fuente en la carpeta App_Code, etc., en resultado ejecutable.

  • Se escribe el resultado ejecutable en una carpeta de destino.

    Nota:

    Si publica una aplicación que contenga una referencia a un componente personalizado registrado en la GAC, el componente no se publicará con la aplicación. Para obtener más información, vea Cómo: Agregar una referencia a un componente .NET o COM en un sitio Web.

Para obtener más información, vea Información general sobre la precompilación de ASP.NET.

Precompilación

El primer paso para publicar es precompilar el sitio Web. La precompilación realiza el mismo proceso de compilación que se suele producir cuando una página se compila dinámicamente al solicitarse por primera vez en un explorador. El proceso de precompilación genera ensamblados a partir de las páginas, lo que incluye tanto el marcado como el código. También compila los archivos de las carpetas App_Code, App_GlobalResources, App_LocalResources y App_Themes.

Puede compilar páginas ASP.NET de un solo archivo y páginas de código subyacente. Para obtener más información acerca de estos dos modelos, vea Modelo de código de las páginas web ASP.NET.

El paso de precompilación en la publicación difiere de la compilación que tiene lugar al generar un sitio web en Visual Studio mientras se prueba. Al generar se compila el sitio, o la página actual y sus archivos dependientes y, a continuación, se ejecuta. El proceso de generación es una forma de probar y no genera resultados que se puedan implementar. Por el contrario, la precompilación durante la publicación crea el resultado en una carpeta especificada que puede implementar en un servidor de producción.

Escribir los resultados de la precompilación

Cuando finaliza el proceso de precompilación, el resultado se escribe en una carpeta especificada. Puede escribir el resultado en cualquier carpeta a la que tenga acceso en el sistema de archivos, mediante FTP (File Transfer Protocol, Protocolo de transferencia de archivos) o HTTP. Debe tener los permisos adecuados para poder escribir en el sitio de destino.

Nota:

El proceso de publicación implementa sólo los archivos de las carpetas del sitio web y sus subcarpetas. No implementa el archivo Machine.config. Por tanto, la configuración del servidor web de destino podría diferir de la configuración en el equipo. Esto puede afectar al comportamiento de la aplicación.

Puede especificar una carpeta de destino en un servidor temporal o de producción, o bien puede escribir el resultado en una carpeta del equipo local. Si especifica una carpeta en un servidor de producción, puede precompilar e implementar en un solo paso. Si escribe el resultado en una carpeta que no forma parte del sitio web, puede copiar el resultado en el servidor en un paso independiente.

Nota:

Si abre un sitio web precompilado con Visual Studio, no podrá generar el sitio web. Las opciones de generación estarán desactivadas. Para cambiar un sitio web publicado, edite los archivos en el sitio web original, vuelva a compilar el sitio y publíquelo de nuevo.

El resultado del proceso de compilación incluye los ensamblados compilados de código o páginas. Si elige la opción que permite que el sitio precompilado se actualice, las clases de código subyacente de los archivos .aspx, .asmx y .ashx se compilan en ensamblados. Sin embargo, los propios archivos .aspx, .asmx y .ashx se copian tal cual en la carpeta de destino, por lo que puede cambiar su diseño después de implementar el sitio. Por lo que respecta a sitios precompilados que se pueden actualizar, el código de páginas de un solo archivo no se compila en un ensamblado. En su lugar, se implementa como código fuente.

No se compilan los archivos estáticos. En su lugar, se copian tal cual en la carpeta de salida. Los archivos estáticos incluyen gráficos, archivos .htm o .html, de texto, etc.

Si se produce un error durante la precompilación, se indica en las ventanas Resultados y Lista de errores. Los errores durante la precompilación impiden que el sitio se compile y se publique.

Volver al principio

Ejemplos de código

Cómo: Copiar archivos de sitios Web con la herramienta Copiar sitio Web

Cómo: Precompilar sitios Web ASP.NET para la implementación

Cómo: Firmar ensamblados para sitios Web precompilados

Cómo: Crear ensamblados que tienen versión para sitios Web precompilados

Cómo: Generar nombres fijos con la herramienta Compilación de ASP.NET

Cómo: Configurar sitios Web publicados

Tutorial: Publicar un sitio Web

Tutorial: Copiar un sitio Web mediante la herramienta Copiar sitio Web

Volver al principio

Vea también

Conceptos

Información general sobre proyectos de aplicaciones web

Información general sobre la precompilación de ASP.NET

Referencia

Volver al principio