Cambiar la versión de ASP.NET de una aplicación en IIS6 desde la línea de comandos

Como indica el titulo de esta entrada, vamos a ver a continuación cómo modificar el NET Framework de una aplicación desde la línea de comandos, sin necesidad de utilizar la ventana de propiedades del Administrador de IIS 6.

ANTECEDENTES:
El motivo de generar esta entrada viene provocado por un pequeño problema que encontré al intentar crear una nueva aplicación en mi servidor de aplicaciones, el cual asigna por defecto la version 1.0 de ASP.NET. Este problema consistía en que cada vez que se generaba una nueva aplicación, el IIS se veía forzado a reiniciarse y provocaba una desconexión temporal de todas las aplicaciones que colgaban del directorio raíz o 'Sitio Web Predeterminado'.

Para evitar este reinicio, tenemos la opción de ejecutar el comando 'aspnet_regiis' desde el editor MS-DOS.

Los PASOS QUE DEBEMOS SEGUIR para crear una aplicación nueva son:
1. Generar la nueva apliación desde el IIS
2. Abrir la consola de "Símbolo de Sistema" y ejecutar la herramienta de registro desde la carpeta del framework adecuado.

1. Generar la nueva aplicación desde el IIS
A la hora de generar una aplicación, deberemos indicar desde la ventana de Propiedades-> Directorio el grupo de aplicaciones en la que desearemos incluirla. En nuestro ejemplo, la incluiremos en la versión 4.0, marcando dicha opción en el selector de grupo:


Si accedemos a la pestaña Propiedades->ASP.NET, en donde se indica la versión del framework, veremos que está marcada la que el sistema tiene por defecto. En nuestro ejemplo, la versión 1.1.




En la mayoría de los casos podremos modificar directamente aquí el valor sin mayor problema, pero si os ocurre lo mismo que a mi, deberéis utilizar la linea de comandos para modificarlo sin riesgo.


2. Abrir la consola de "Símbolo de Sistema" y ejecutar la herramienta de registro desde la carpeta del framework adecuado.

Lo primero que debemos hacer, tras abrir la consola, es ubicarnos en la carpeta contenedora del framework que deseamos actualizar, para ejecutar el comando de registro. Todos los frameworks instalados se encuentran en la carpeta C:\WINDOWS\Microsoft.NET\Framework.

Por tanto, y siguiendo con nuestro ejemplo, tendríamos que ejecutar la siguiente línea:
c:\ cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319

Una vez en la carpeta, sólo quedaría ejecutar el comando que modificará nuestra versión de la aplicación:
aspnet_regiis -norestart  -s W3SVC/[WebSiteID]/ROOT/[SampleApp1]

La sentencia final quedaría así:

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -norestart  -s W3SVC/1/ROOT/Prueba

Con esto habremos conseguido modificar la versión, sin reiniciar el IIS. Si volvemos ahora a nuestro administrador IIS, veremos que la versión de ASP.NET se ha actualizado correctamente.





NOTA IMPORTANTE:
aspnet_regiis -norestart  -s W3SVC/[WebSiteID]/ROOT/[SampleApp1]

Donde:
· [WebSiteID] es el identificador numérico del sitio web padre (por eso, modificar el sitio web por defecto es el 1)
· [SampleApp1] es la ruta de acceso desde el raiz del website a modificar;

Para encontrar dicho ID, simplemente debéis entrar en el IIS y pulsar en “sitios web” para mostrar el listado de todos los sitios. Luego, el numero que se encuentra en la columna “Identificar” es el que corresponda con el website que deseamos actualizar.
¡Espero que os haya servido! 
Un saludo y hasta la próxima.

2 comentarios:

  1. al utilizar el comando aspnet_regiis -lk no muestra mi sitio web aunque este sea visible desde la ventana de IIS 6. El sitio no se encuentra dentro del Default Web Site. ¿Que puede estar ocurriendo?

    ResponderEliminar
  2. El comando aspnet_regiis es particular para cada framework. Es posible que la versión tu aplicación y la ejecución del comando desde la carpeta del framework no coincidan.

    Revisa que tanto la versión de tu app, como la ejecución del comando están en el mismo framework.

    Si tu applicación es v3.5 y lanzas el comando desde la v4.0, es posible que no la reconozca. Ambas versiones deben coincidir.

    ResponderEliminar