Ejecutar una aplicación ASP.NET MVC 3 en un servidor web que no tiene instalado ASP.NET MVC 3

Hace poco publicamos varios productos nuevos- incluyendo ASP.NET MVC 3. Hemos recibido un gran feeback y un montón de descargas desde entonces.

Una pregunta que me han hecho recientemente es: "Mi hosting no soporta aún ASP.NET MVC 3- ¿tienes alguna idea de cuándo lo instalarán?".

Las buenas noticias es que  no tenemos que esperar que instalen nada en los servidores. Si  tu web hosting soporte .NET 4, podéis crear y desplegar aplicaciones ASP.NET MVC 3 en él - sin que tu web hosting tenga que hacer nada para permitirlo. En este post veremos cómo conseguirlo.

Un poco de historia.

Soportamos dos formas de instalar y usar los assemblies que implementan ASP.NET MVC 3 en una máquina:

  • Tener los assemblies de ASP.NET MVC 3 instalados en un lugar central de una máquina,  y tener proyectos web que las referencie/usen desde allí.
  • Copiar los assemblies de ASP.NET MVC 3 en el directorio bin del proyecto web, y hacer que nuestro proyecto los referencie/use desde allí.

La primera opción es la por defecto que usamos en Visual Studio, y tiene la ventaja de permitirnos servir los assemblies de ASP.NET MVC3 usando Windows Update (en caso de encontrar un bug).

La segunda opción está también totalmente soportada, y tiene la ventaja de que no hace falta que estén instalados los assemblies de ASP.NET MVC 3 en la máquina para usarla. En lugar de eso, podemos copiar nuestra aplicación web a un servidor (con los assemblies de ASP.NET MVC contenidos en el directorio bin de la aplicación) y simplemente funciona. Debemos usar esta opción si nuestro web hosting no tiene instalado ASP.NET MVC 3 todavía en sus servidores.

Opción 1: Referenciar los assemblies de ASP.NET MVC desde el GAC

Cuando instalamos ASP.NET MVC 3 en una máquina, un  número de assemblies se registran automáticamente en el GAC (Global Assembly Cache) como parte del proceso de instalación. El GAC ofrece un lugar centralizado en el que se instalan los assemblies de .NET. Como ofrece una forma sencilla de actualizar/servir los assemblies, los proyectos ASP.NET MVC - por defecto - referencian los assemblies que implementan ASP.NET MVC desde allí.

Si copiamos un pequeño proyecto ASP.NET MVC 3-  creado con esta opción de referenciar los assemblies desde el GAC - a una máquina que no tiene instalado ASP.NET MVC 3, veremos un error como el siguiente cuando ejecutemos nuestra aplicación:

El error anterior indica que uno de los assemblies que son necesarios para ejcutar ASP.NET MVC 3 desde el GAC no ha sido encontrado. Instalando ASP.NET MVC 3 en la máquina resolverá este error y permitirá que nuestra aplicación se ejecute.

Opción 2: Referenciar los assemblies de ASP.NET MVC desde el directorio bin

La opción alternativa que podemos usar en nuestros proyectos es distribuir y referenciar los assemblies de ASP.NET MVC 3 desde el directorio bin en nuestra aplicación web. Las ventajas de esta opción es que no tenemos que instalar explícitamente ASP.NET MVC 3 en la máquina en la que se va a ejecutar nuestra aplicación web. En lugar de eso, podemos copiar nuestra aplciación web en un servidor con .NET 4 y funcionará. Esta opción funciona en escenarios de confianza completa y parcial - es decir, funcionara en hsotings low-cost. No hace falta registrar/instalar nada en el hosting para poder hacer esto.

Hacer que nuestro proyecto web referencie los assemblies de ASP.NET MVC 3 desde el directorio bin es fácil y tan sólo lleva 2 minutos. Aquí tenéis los pasos que tenemos que hacer para conseguirlo:

Una vez configurado el despliegue para el directorio bin, una aplicación que creemos con ASP.NET MVC 3 funcinoará en cualquier servidor que tenga instalado .NET 4. Tan solo tenemos que copiarlo al servidor web y funcionará. No necesitamos que nuestro hosting haga nada - incluso en hsoting de low-cost.

Encontrar un hosting ASP.NET

Podéis navegar por la Galería de Hostings Web de Windows para encontrar hostings de ASP.NET  (todos suportan ASP.NET 4):

image

La Galería de Hostings Web de Windows nos permite buscar ofertas de hosting de diferentes países y niveles de ofertas. También nos permite buscar por ofertas de "hosting compartido", "hosting Virtual" y "hosting dedicado".

"Hosting Compartido" es una opción en la que varios clientes ejecutan un servidor web y que no tenemos derechos de administración en el servidor remoto. "Hosting Virtual" es una opción en la que tenemos una imagen de una máquina virtual en un servidor remoto - normalmente con permisos de administración y acceso por terminal server. "hosting Dedicado" es la opción que nos ofrece un servidor físico completo, y también suelen ofrecer permisos de administración y acceso por escritorio remoto.

Los precios de estos hosting son muy competitivos,  desde tan solo 2.75$/mes para un hosting compartido hasta 23$/mes por un hosting virtual. Todas las ofertas anteriores son capaces de ejecutar ASP.NET MVC 3 usando la opcíon del directorio bin.

Resúmen

Podemos desplegar aplicaciones de ASP.NET MVC 3 en cualquier servidor web que tenga instalado .NET 4 - sin tener que esperar a que el hosting instale ASP.NET MVC 3. Tan sólo tenemos que seguir los pasos anteriores para hacer que nuestro proyecto referencie los assemblies de ASP.NET MVC 3 desde el directorio bin, y ya podremos copiar nuestra aplicación en cualquier servidor que tenga .NET 4.

Espero que sirva.

Scott.

Traducido por: Juan María Laó Ramos.

Artículo original

Un pensamiento en “Ejecutar una aplicación ASP.NET MVC 3 en un servidor web que no tiene instalado ASP.NET MVC 3

  1. Pingback: Tweets that mention Ejecutar una aplicación ASP.NET MVC 3 en un servidor web que no tiene instalado ASP.NET MVC 3 « Thinking in .NET -- Topsy.com

Deja un comentario