Implementar el sitio mediante un cliente FTP (VB)

por Scott Mitchell

Descargar PDF

La manera más sencilla de implementar una aplicación de ASP.NET es copiar manualmente los archivos necesarios del entorno de desarrollo al entorno de producción. En este tutorial se muestra cómo usar un cliente FTP para obtener los archivos del escritorio al proveedor de host web.

Introducción

En el tutorial anterior se introdujo una sencilla aplicación web ASP.NET, Book Review, que consta de una serie de páginas ASP.NET, una página maestra, una clase Page base personalizada, una serie de imágenes y tres hojas de estilos CSS. Ahora estamos listos para implementar esta aplicación en un proveedor de host web, en cuyo momento la aplicación será accesible para cualquier persona con conexión a Internet.

A partir de nuestros debates en el tutorial Determinar qué archivos se deben implementar, sabemos qué archivos deben copiarse en el proveedor de host web (recuerde que los archivos que se copian depende de si la aplicación se compila explícita o automáticamente). ¿Pero cómo obtenemos los archivos desde el entorno de desarrollo (nuestro escritorio) hasta el entorno de producción (el servidor web administrado por el proveedor de host web)? El protocolo de transferencia de archivos (F ile T ransfer P rotocol, FTP) es un protocolo que se suele usar para copiar archivos de una máquina a otra a través de una red. Otra opción es Extensiones de servidor de FrontPage (FPSE). Este tutorial se centra en el uso de software cliente FTP independiente para implementar los archivos necesarios desde el entorno de desarrollo hasta el entorno de producción.

Nota:

Visual Studio incluye herramientas para publicar sitios web a través de FTP; estas herramientas, así como las herramientas que usan FPSE, se tratan en el siguiente tutorial.

Para copiar los archivos mediante FTP, necesitamos un cliente FTP en el entorno de desarrollo. Un cliente FTP es una aplicación diseñada para copiar archivos desde el equipo que se instala en un equipo que ejecuta un servidor FTP (si el proveedor de host web admite transferencias de archivos a través de FTP, como la mayoría, hay un servidor FTP que se ejecuta en sus servidores web). Hay una serie de aplicaciones cliente FTP disponibles. El explorador web puede incluso duplicarse como cliente FTP. Mi cliente FTP favorito, y el que usaré para este tutorial, es FileZilla, un cliente FTP gratuito de código abierto que está disponible para Windows, Linux y Mac. Sin embargo, cualquier cliente FTP funcionará, así que no dude en usar cualquier cliente con el que esté más cómodo.

Si sigue adelante, deberá crear una cuenta con un proveedor de host web para poder completar este tutorial o tutoriales posteriores. Como se indicó en el tutorial anterior, hay un montón de empresas proveedoras de host web con una amplia gama de precios, características y calidad de servicio. En esta serie de tutoriales usaré Discount ASP.NET como proveedor de host web, pero puede seguir con cualquier proveedor de host web, siempre y cuando admita la versión de ASP.NET en la que se desarrolla su sitio (estos tutoriales se crearon con ASP.NET 3.5). Además, dado que vamos a copiar los archivos al proveedor de host web mediante FTP en este y en futuros tutoriales, es imperativo que el proveedor de host web admita el acceso FTP a sus servidores web. Prácticamente todos los proveedores de host web ofrecen esta característica, pero debe volver a comprobar antes de registrarse.

Implementación del proyecto de la aplicación web Book Review

Recuerde que hay dos versiones de la aplicación web Book Review: una implementada mediante el modelo de proyecto de aplicación web (BookReviewsWAP) y otra con el modelo de proyecto de sitio web (BookReviewsWSP). El tipo de proyecto influye en si el sitio se compila automática o explícitamente, y ese modelo de compilación determina qué archivos deben implementarse. Por tanto, examinaremos la implementación de los proyectos BookReviewsWAP y BookReviewsWSP por separado, empezando por BookReviewsWAP. Dedique un momento a descargar estas dos aplicaciones ASP.NET si aún no lo ha hecho.

Inicie el proyecto BookReviewsWAP; para ello, vaya a la carpeta BookReviewsWAP y haga doble clic en el archivo BookReviewsWAP.sln. Antes de implementar el proyecto, es importante compilarlo para asegurarse de que los cambios en el código fuente se incluyan en el ensamblado compilado. Para compilar el proyecto, vaya al menú Compilar y elija la opción de menú Compilar BookReviewsWAP. Se compilará el código fuente del proyecto en un único ensamblado, BookReviewsWAP.dll, que se coloca en la carpeta Bin.

Ya estamos listos para implementar los archivos necesarios. Inicie el cliente FTP y conéctese al servidor web en el proveedor de host web (al registrarse en una empresa de hospedaje web, le enviarán un correo electrónico con información sobre cómo conectarse al servidor FTP; esto incluye la dirección del servidor FTP, así como un nombre de usuario y una contraseña).

Copie los siguientes archivos desde el escritorio a la carpeta del sitio web raíz en el proveedor de host web. Al acceder por FTP al servidor web en el proveedor de host web, es probable que esté en el directorio raíz del sitio web. Sin embargo, algunos proveedores de host web tienen una subcarpeta denominada www o wwwroot que actúa como carpeta raíz para los archivos del sitio web. Por último, al acceder por FTP a los archivos, es posible que tenga que crear la estructura de carpetas correspondiente en el entorno de producción: la carpeta Bin, la carpeta Fiction, la carpeta Images, etc.

  • ~/Default.aspx
  • ~/About.aspx
  • ~/Site.master
  • ~/Web.config
  • ~/Web.sitemap
  • Contenido completo de la carpeta Styles
  • Contenido completo de la carpeta Images (y su subcarpeta, BookCovers)
  • ~/Fiction/Default.aspx
  • ~/Fiction/Blaze.aspx
  • ~/Tech/Default.aspx
  • ~/Tech/CYOW.aspx
  • ~/Tech/TYASP35.aspx
  • ~/Bin/BookReviewsWAP.dll

En la ilustración 1 se muestra FileZilla después de copiar los archivos necesarios. FileZilla muestra los archivos en el equipo local de la izquierda y los archivos del equipo remoto a la derecha. Como se muestra en la ilustración 1, los archivos de código fuente ASP.NET, como About.aspx.vb, se encuentran en el equipo local (el entorno de desarrollo), pero no se copiaron en el proveedor de host web (el entorno de producción) porque no es necesario implementar archivos de código al usar la compilación explícita.

Nota:

No pasa nada por tener los archivos de código fuente en el servidor de producción, ya que se omiten. ASP.NET prohíbe las solicitudes HTTP a los archivos de código fuente de forma predeterminada para que, incluso si los archivos de código fuente están presentes en el servidor de producción, sean inaccesibles para los visitantes de su sitio web (es decir, si un usuario intenta visitar http://www.yoursite.com/Default.aspx.vb, obtendrá una página de error que explica que estos tipos de archivos, los archivos .vb, están prohibidos).

Use an FTP Client to Copy the Necessary Files from Your Desktop to the Web Server at the Web Host Provider.

Ilustración 1: Uso de un cliente FTP para copiar los archivos necesarios desde el escritorio al servidor web en el proveedor de host web (haga clic para ver la imagen a tamaño completo)

Después de implementar el sitio, dedique un momento a probar el sitio. Si ha adquirido un nombre de dominio y ha configurado correctamente la configuración de DNS, puede visitar el sitio escribiendo el nombre de dominio. Como alternativa, el proveedor de host web debe haber proporcionado una dirección URL al sitio, que tendrá un aspecto similar a nombre_cuenta.proveedor_host_web.com o a proveedor_host_web.com/nombre_cuenta. Por ejemplo, la dirección URL de mi cuenta en Discount ASP.NET es http://httpruntime.web703.discountasp.net.

En la ilustración 2 se muestra el sitio Book Reviews implementado. Tenga en cuenta que lo estoy viendo en los servidores de Discount ASP.NET, en http://httpruntime.web703.discountasp.net. En este momento, cualquier persona que tenga conexión a Internet podría ver mi sitio web. Como cabría esperar, el sitio se ve y se comporta igual que al probarlo en el entorno de desarrollo.

Nota:

Si recibe un error al ver la aplicación, dedique un momento a comprobar que ha implementado el conjunto correcto de archivos. A continuación, compruebe el mensaje de error para ver si revela alguna pista sobre el problema. Después, puede volver al departamento de soporte técnico de su empresa de host web o publicar su pregunta en el foro adecuado de Foros de ASP.NET.

The Book Reviews Site is Now Accessible to Anyone with an Internet Connection.

Ilustración 2: El sitio Book Reviews ahora es accesible para cualquier persona que tenga conexión a Internet (haga clic para ver la imagen a tamaño completo)

Implementación del proyecto de sitio web de Book Reviews

Al implementar una aplicación de ASP.NET que usa la compilación automática, como el proyecto del sitio web BookReviewsWSP, no hay ningún ensamblado compilado en la carpeta Bin. Como resultado, los archivos de código fuente de la aplicación web deben implementarse en el entorno de producción. Vamos a ver este proceso.

Al igual que con el proyecto de aplicación web, es aconsejable compilar primero la aplicación antes de implementarla. Al compilar un proyecto de sitio web no se crea ningún ensamblado, pero sí comprueba si hay errores en tiempo de compilación en la página. Es mejor encontrar estos errores ahora en lugar de que los descubra un visitante a su sitio.

Una vez que haya compilado correctamente el proyecto, use el cliente FTP para copiar los siguientes archivos en la carpeta raíz del sitio web en el proveedor de host web. Es posible que tenga que crear la estructura de carpetas correspondiente en el entorno de producción.

Nota:

Si ya ha implementado el proyecto BookReviewsWAP pero desea intentar implementar el proyecto BookReviewsWSP, elimine primero todos los archivos del servidor web que se cargaron al implementar BookReviewsWAP e implemente los archivos para BookReviewsWSP.

  • ~/Default.aspx
  • ~/Default.aspx.vb
  • ~/About.aspx
  • ~/About.aspx.vb
  • ~/Site.master
  • ~/Site.master.vb
  • ~/Web.config
  • ~/Web.sitemap
  • Contenido completo de la carpeta Styles
  • Contenido completo de la carpeta Images (y su subcarpeta, BookCovers)
  • ~/App_Code/BasePage.vb
  • ~/Fiction/Default.aspx
  • ~/Fiction/Default.aspx.vb
  • ~/Fiction/Blaze.aspx
  • ~/Fiction/Blaze.aspx.vb
  • ~/Tech/Default.aspx
  • ~/Tech/Default.aspx.vb
  • ~/Tech/CYOW.aspx
  • ~/Tech/CYOW.aspx.vb
  • ~/Tech/TYASP35.aspx
  • ~/Tech/TYASP35.aspx.vb

En la ilustración 3 se muestra FileZilla después de copiar los archivos necesarios. Como puede ver, los archivos de código fuente de ASP.NET, como About.aspx.vb, están presentes tanto en el equipo local (el entorno de desarrollo) como en el proveedor de host web (el entorno de producción) porque los archivos de código deben implementarse al usar la compilación automática.

Use an FTP Client to Copy the Necessary Files from Your Desktop to the Web Server at the Web Host Provider

Ilustración 3: Uso de un cliente FTP para copiar los archivos necesarios desde el escritorio al servidor web en el proveedor de host web (haga clic para ver la imagen a tamaño completo)

La experiencia del usuario no se ve afectada por el modelo de compilación de la aplicación. Las mismas páginas ASP.NET son accesibles y tienen un aspecto y se comportan igual si el sitio web se creó con el modelo de proyecto de aplicación web o con el modelo de proyecto de sitio web.

Actualización de una aplicación web en producción

El desarrollo y la implementación de aplicaciones web no son un proceso único. Por ejemplo, al crear el sitio web Book Reviews, creé las distintas páginas y escribí el código complementario en mi equipo personal (el entorno de desarrollo). Después de alcanzar un determinado estado estable, implementé mi aplicación para que otros usuarios pudieran visitar el sitio y leer mis opiniones. Pero la implementación no marca el final de mi desarrollo en este sitio. Puedo agregar más reseñas de libros o implementar nuevas características, como permitir a mis visitantes valorar libros o dejar sus propios comentarios. Estas mejoras se desarrollarían en el entorno de desarrollo y, una vez completadas, tendrían que implementarse. Por lo tanto, el desarrollo y la implementación son cíclicos. Desarrolle una aplicación y, a continuación, impleméntela. Mientras el sitio está activo y en producción, se agregan nuevas características y se corrigen errores con el tiempo, lo que requiere volver a implementar la aplicación. Y así sucesivamente.

Como podría esperar, al volver a implementar una aplicación web solo necesita copiar archivos nuevos y modificados. No es necesario volver a implementar páginas sin cambios ni archivos de soporte técnico del lado cliente o de servidor (aunque no pasa nada si se hace).

Nota:

Algo que debe tener en cuenta al usar la compilación explícita es que en cualquier momento que agregue una nueva página ASP.NET al proyecto o haga cambios relacionados con el código, deberá recompilar el proyecto, que actualiza el ensamblado en la carpeta Bin. Por tanto, deberá copiar este ensamblado actualizado en producción al actualizar una aplicación web en producción (junto con el otro contenido nuevo y actualizado).

Comprenda también que los cambios en Web.config o en los archivos del directorio Bin se detienen y reinician el grupo de aplicaciones del sitio web. Si el estado de la sesión se almacena con el modo InProc (el predeterminado), los visitantes del sitio perderán su estado de sesión cada vez que se modifiquen estos archivos de clave. Para evitar este problema, considere la posibilidad de almacenar la sesión usando el modo StateServer o SQLServer. Para obtener más información sobre este tema, lea Modos de estado de sesión.

Por último, tenga en cuenta que volver a implementar una aplicación puede tardar entre unos segundos y varios minutos, en función del número y el tamaño de los archivos que deban copiarse en el entorno de producción. Durante este tiempo, los usuarios que visiten el sitio pueden experimentar errores o comportamientos extraños. Puede "desactivar" toda la aplicación agregando una página denominada App_Offline.htm al directorio raíz de la aplicación que explique a los usuarios que el sitio está inactivo por motivos de mantenimiento (o lo que sea) y que volverá en breve. Cuando el archivo App_Offline.htm está presente, el entorno de ejecución de ASP.NET redirige todas las solicitudes entrantes a esa página.

Resumen

La implementación de una aplicación web implica copiar los archivos necesarios desde el entorno de desarrollo al entorno de producción. Los medios más comunes por los que los archivos se transfieren a través de una red es el Protocolo de transferencia de archivos (FTP) y la mayoría de los proveedores de host web admiten el acceso FTP a sus servidores web. En este tutorial vimos cómo usar un cliente FTP para implementar los archivos necesarios en el servidor web. Una vez implementado, el sitio web puede ser visitado por cualquier persona que tenga conexión a Internet.

¡Feliz programación!

Lecturas adicionales

Para obtener más información sobre los temas tratados en este tutorial, consulte los siguientes recursos: