IIS 8.0 con ASP.NET 3.5 y ASP.NET 4.5
por Won Yoo
Compatibilidad
Versión | Notas |
---|---|
IIS 8.0 | ASP.NET 3.5 y ASP.NET 4.5 se admiten en IIS 8.0. |
IIS 7.5 | ASP.NET 3.5 y ASP.NET 4.5 se admiten en IIS 7.5. |
IIS 7.0 | ASP.NET 3.5 y ASP.NET 4.5 se admiten en IIS 7.0. |
Problema
Windows Server 2012 incluye .NET Framework 4.5 de forma predeterminada, así como la instalación opcional de .NET Framework 3.5. Los desarrolladores suelen tener que ejecutar aplicaciones web mixtas en varias versiones de .NET Framework.
Solución
IIS 8.0 en Windows Server 2012 ejecuta aplicaciones de ASP.NET en todas las versiones de .NET Framework compatibles con Windows Server 2012. Esto significa que se pueden ejecutar aplicaciones de ASP.NET en IIS 8.0 mediante .NET Framework 3.5 o .NET Framework 4.5. IIS 8.0 hospeda versiones de .NET Framework en diferentes grupos de aplicaciones, lo que permite que varias aplicaciones de ASP.NET con diferentes versiones de .NET Framework se ejecuten simultáneamente en Windows Server 2012.
IIS 8.0 también admite la administración de aplicaciones de ASP.NET 3.5 y ASP.NET 4.5 con la herramienta gráfica Administrador de IIS, así como con las herramientas de administración de línea de comandos de IIS. Para más información, consulte el artículo Administración de la configuración de IIS 8.0 en ASP.NET.
Habilitación de la autenticación de Azure Active Directory Domain Services en Azure Files
Requisitos previos
- IIS está instalado en Windows Server 2012. Para más información sobre la instalación de IIS 8, consulte Instalación de IIS 8 en Windows Server 2012.
Configuración de IIS 8.0 con compatibilidad con ASP.NET 3.5 y ASP.NET 4.5
En Windows Server 2012, el sistema operativo reconoce de forma nativa tanto .NET Framework 3.5 como .NET Framework 4.5. Esto significa que se puede usar tanto la configuración basada en la interfaz de usuario como la basada en la línea de comandos para activar ambas versiones de .NET Framework, así como habilitar la integración de ambas versiones de ASP.NET con IIS 8.0.
En este tutorial usaremos la nueva interfaz de usuario del Administrador del servidor en Windows Server 2012 Server para demostrar cómo habilitar ASP.NET 3.5 y ASP.NET 4.5 en IIS 8.0.
Cuando inicie sesión por primera vez en una nueva máquina con Windows Server 2012, se mostrará la nueva interfaz de usuario del Administrador del servidor. Haga clic en Agregar roles como se muestra a continuación:
En la primera pantalla del Asistente para agregar roles y características, haga clic en Siguiente. Se muestra una página en la que se selecciona el tipo de instalación deseada. Elija la instalación Basada en roles o Basada en características, como se muestra a continuación:
Haga clic en Siguiente. La siguiente pantalla del asistente le pide que elija el servidor que está configurando.
En el siguiente paso del asistente, se le pedirá que seleccione uno o varios roles de servidor. Desplácese hacia abajo en la lista Roles y asegúrese de activar la casilla Servidor web (IIS), como se muestra a continuación:
Haga clic en Siguiente para continuar con el paso siguiente, que le permite seleccionar características específicas adicionales para instalar en el servidor. De nuevo, haga clic en Siguiente y vaya al paso siguiente.
El siguiente paso del asistente muestra información introductoria sobre el rol Servidor web (IIS). De nuevo, haga clic en Siguiente y vaya al paso siguiente. Ahora debería estar en un paso del asistente similar al siguiente:
Tenga en cuenta que ya se ha activado varias subcaracterísticas predeterminadas para IIS porque anteriormente seleccionó el rol de servidor Servidor web (IIS). Sin embargo, queremos permitir que tanto ASP.NET 3.5 como ASP.NET 4.5 se ejecuten en IIS 8.0, por lo que es necesario habilitar algunas características adicionales relacionadas con IIS. Desplácese hacia abajo en la lista Servicios de rol hasta que se muestre el nodo Desarrollo de aplicaciones. Este nodo está contraído inicialmente, así que haga clic en él y expándalo para que se muestren sus elementos secundarios:
El nodo Desarrollo de aplicaciones es donde habilitamos la integración de ASP.NET con IIS. Tenga en cuenta que hay algunas casillas en la lista de características con nombres similares. El par de casillas que son de interés para este tutorial son:
- ASP.NET 3. 5: esta opción permite que ASP.NET 3.5 se ejecute en IIS 8.0. Tenga en cuenta que con Windows Server 2012, .NET Framework 3.5 no está disponible como parte de la imagen base del sistema operativo. En cambio, la carga se descarga de Internet y usted debe conectarse a Internet.
- ASP.NET 4.5: esta opción permite que ASP.NET 4.5 se ejecute en IIS 8.0.
En primer lugar, active la casilla ASP.NET 3.5. Al hacerlo, aparecerá un cuadro de diálogo adicional como se muestra a continuación:
Dado que ASP.NET 3.5 está integrado en la configuración de Windows Server 2012, este sistema operativo conoce todas las dependencias relacionadas necesarias para habilitar ASP.NET 3.5 en IIS 8.0. Este cuadro de diálogo emergente solo muestra lo que se extraerá e instalará automáticamente. Como queremos tener habilitado ASP.NET 3.5, haga clic en Agregar características obligatorias.
A continuación, active la casilla ASP.NET 4.5 en la lista de características Servicios de rol. A continuación se muestra el resultado final de hacer clic en ambas casillas relacionadas con ASP.NET:
Aunque solo haya seleccionado directamente las características ASP.NET 3.5 y ASP.NET 4.5, el asistente activa automáticamente varios otros elementos. Esta acción se realiza automáticamente para que los desarrolladores no tengan que elegir explícitamente las distintas partes componentes necesarias para el "ensamblado" de ASP.NET en Windows Server 2012. En este punto, haga clic en Siguiente para aceptar los cambios.
Si acepta los cambios, el paso Confirmar selecciones de instalación muestra una lista de todas las características instaladas.
En este punto, haga clic en Instalar para aceptar los cambios e instalar la compatibilidad completa con ASP.NET en Windows Server 2012.
Dado que la instalación tardará una pequeña cantidad de tiempo en completarse, el asistente muestra un cuadro de diálogo de progreso mientras progresa la instalación:
Al cabo de unos minutos, el asistente muestra que la instalación se ha completado:
En este punto, puede hacer clic en Cerrar y salir del asistente.
Exploración de la instalación de IIS 8.0
Con la integración de IIS 8.0 y ASP.NET instalada, podemos echar un vistazo a la superficie básica de ASP.NET para IIS 8.0.
En el menú Inicio de Windows, seleccione Todos los programas y, luego, expanda el menú Herramientas administrativas. En la lista resultante, busque Administrador de Internet Information Services (IIS) y selecciónelo para iniciar la herramienta gráfica de administración de IIS:
Una vez que se inicie el Administrador de IIS, expanda el nodo de servidor en la ventana izquierda para que se muestre tanto el nodo Grupos de aplicaciones como el nodo Sitios. Al hacerlo, el Administrador de IIS mostrará un cuadro de diálogo que le pregunta si quiere permanecer conectado con los componentes de plataforma web más recientes. Para los fines de este tutorial, puede hacer clic en No. En este momento, el Administrador de IIS tiene el siguiente aspecto:
Haga clic en el nodo Grupos de aplicaciones para mostrar los grupos de aplicaciones que ahora se han instalado para su uso por IIS 8.0:
Puede ver que se crean seis grupos de aplicaciones diferentes de forma predeterminada cuando ASP.NET 3.5 y ASP.NET 4.5 están habilitados para IIS 8.0. Cuatro de las aplicaciones son nuevas para IIS 8.0, mientras que otros dos grupos de aplicaciones se han mantenido de versiones anteriores de Windows.
- Tenga en cuenta que, aunque la columna Versión de .NET Framework muestra "v2.0" y "v4.0" como versiones de .NET Framework, estas equivalen a ASP.NET 3.5 y ASP.NET 4.5. Debido a los aspectos internos de cómo los grupos de aplicaciones se enlazan con las versiones de .NET Framework, el nombre de la versión real escrito en la configuración (y por lo tanto mostrado en la herramienta) corresponde a la versión original del archivo de .NET Framework.
- Classic .NET AppPool y DefaultAppPool existían en versiones anteriores de Windows y, por tanto, se siguen creando para IIS 8.0. Sin embargo, tenga en cuenta que, dado que .NET Framework 4.5 es la versión predeterminada de .NET Framework que se usa en Windows Server 2012, "DefaultAppPool" en IIS 8.0 también usa de forma predeterminada la versión más reciente de .NET Framework.
- Los otros cuatro grupos de aplicaciones son nuevos en Windows Server 2012. Hay dos grupos de aplicaciones para ejecutar .NET Framework 3.5 (.NET v2.0 y .NET v2.0 clásico) y dos grupos de aplicaciones para ejecutar .NET Framework 4.5 (.NET Framework 4.5 y .NET Framework 4.5 clásico).
- La diferencia entre los grupos de aplicaciones "clásico" y "no clásico" es el modo de canalización administrado admitido en cada tipo de grupo de aplicaciones. Los dos grupos de aplicaciones que terminan en "clásico" admiten el modo de canalización clásico de la era de Windows Server 2003 para ASP.NET, mientras que los otros dos grupos de aplicaciones usan el modo de canalización integrado más reciente para ASP.NET introducido en Vista/IIS7.0.
Para explorar un poco más, expanda el nodo Sitios en el lado izquierdo de la pantalla para que el nodo Sitio web predeterminado esté visible:
Las instalaciones predeterminadas de IIS siempre tienen configurado un "sitio web predeterminado" para escuchar las solicitudes HTTP en el puerto 80. Explore en profundidad el "Sitio web predeterminado" para ver qué versión de ASP.NET admite de forma predeterminada. Haga clic con el botón derecho en Sitio web predeterminado, seleccione Administrar sitio web y elija Configuración avanzada, como se muestra a continuación:
Aparece el cuadro de diálogo Configuración avanzada, que muestra (entre otras cosas) el grupo de aplicaciones usado para ejecutar el "Sitio web predeterminado". Como se muestra en la imagen siguiente, el "Sitio web predeterminado" se ejecuta en el grupo de aplicaciones llamado "DefaultAppPool":
Si hace clic en el pequeño botón de puntos suspensivos en el lado derecho del grupo de aplicaciones, aparece un cuadro de diálogo adicional que muestra más información sobre "DefaultAppPool". Como se indicó anteriormente, "DefaultAppPool" toma como valor predeterminado ASP.NET 4.5 para IIS 8.0, por lo que las aplicaciones de ASP.NET 4.5 implementadas en el "Sitio web predeterminado" funcionarán sin ninguna configuración adicional.
En este punto, haga clic en Cancelar para cancelar tanto el cuadro de diálogo Seleccionar grupo de aplicaciones como el cuadro de diálogo Configuración avanzada.
Ejecución de aplicaciones de ASP.NET 3.5 y ASP.NET 4.5
Ahora que ha explorado el estado de instalación de IIS 8.0, pruebe a ejecutar código de ejemplo de ASP.NET para confirmar que las aplicaciones de ASP.NET 3.5 y ASP.NET 4.5 se pueden ejecutar simultáneamente en una sola instalación de IIS 8.0.
El código de ejemplo para ASP.NET 3.5 y ASP.NET 4.5 se incluye en el ZIP siguiente:
En primer lugar, configure una aplicación simple de ASP.NET 3.5 en IIS 8.0:
Abra el archivo "examples.zip".
En el Explorador de Windows de la máquina con Windows Server 2012, vaya al directorio "wwwroot" de la instalación de IIS. Por ejemplo, si instaló IIS en la unidad C:\, el directorio "wwwroot" estará en
c:\inetpub\wwwroot
.Copie la carpeta "example35" de "examples.zip" y péguela en el directorio
c:\inetpub\wwwroot
. Cuando haya terminado, la estructura de directorios debe ser similar a la siguiente:
La carpeta "example35" recién creada debe configurarse como una aplicación de ASP.NET 3.5 en el Administrador de IIS. Vuelva a la ventana Administrador de IIS, haga clic en el nodo Sitio web predeterminado y seleccione Actualizar. La vista de árbol de los nodos secundarios en Sitio web predeterminado ahora muestra la carpeta "example35":
Haga clic con el botón derecho en la carpeta example35 y seleccione Convertir en aplicación:
Aparece el cuadro de diálogo Agregar aplicación. De forma predeterminada, todos los directorios de Sitio web predeterminado forman parte del grupo de aplicaciones llamado DefaultAppPool. Esto significa que las carpetas recién creadas que contienen ASP.NET se ejecutan como aplicaciones de ASP.NET 4.5 de forma predeterminada.
Dado que queremos ejecutar la carpeta example35 como una aplicación de ASP.NET 3.5, es necesario cambiar el grupo de aplicaciones. Haga clic en Seleccionar y en el cuadro de diálogo Seleccionar grupo de aplicaciones que aparece. Cambie el grupo de aplicaciones a .NET v2.0, como se muestra a continuación:
Haga clic en el botón Aceptar para aceptar el cambio del grupo de aplicaciones y, a continuación, haga clic en Aceptar de nuevo para confirmar los cambios en IIS. La ventana Administrador de IIS vuelve a aparecer. En la vista de árbol que muestra "Sitio web predeterminado", el icono de "example35" cambia para indicar que ahora es una aplicación de ASP.NET distinta.
En este punto, inicie una instancia de Internet Explorer y vaya a la siguiente dirección URL:
http://localhost/example35
Después de una breve pausa, la aplicación muestra una lista de características de .NET Framework admitidas en esta aplicación.
En el Explorador de Windows, si va al directorio
c:\inetpub\wwwroot\example35
, puede usar el Bloc de notas para ver el código de "default.aspx" y la información de "web.config". Por ejemplo, el contenido de web.config incluye directivas que configuran los compiladores de .NET Framework para que se ejecuten en modo "3.5". El código de .NET Framework de "default.aspx" muestra algunas construcciones de C# que se introdujeron en .NET 3.5, específicamente consultas LINQ-to-Object.
Ahora que hay una aplicación de ASP.NET 3.5 en ejecución, puede crear una segunda aplicación de ASP.NET, pero esta vez configúrela para usar .NET Framework 4.5.
Vuelva a la ventana del Explorador de Windows que tiene abierto el archivo .zip "examples.zip".
Abra el contenido de la carpeta "example45".
En la segunda ventana del Explorador de Windows que tiene abierta, vaya a
c:\inetpub\wwwroot
.Copie el archivo "default.aspx" del archivo .zip y péguelo directamente en
c:\inetpub\wwwroot
. El contenido de la carpeta dec:\inetpub\wwwroot
ahora debería tener el siguiente aspecto:
Ahora vuelva a Internet Explorer y vaya a la siguiente dirección URL:
http://localhost/default.aspx
Después de una breve pausa, un segundo grupo de aplicaciones comenzará a ejecutar una aplicación de ASP.NET 4.5 para el "Sitio web predeterminado". El explorador muestra de nuevo una lista de características de .NET Framework admitidas en esta aplicación con una nueva entrada al final de la lista para variables con tipo dinámico (es decir, la palabra clave dynamic introducida en .NET Framework 4.0/4.5). Observe que, a diferencia de la aplicación "example35" que requería entradas especiales de web.config, no fue necesario ningún archivo web.config para configurar y ejecutar la página "default.aspx" en el "Sitio web predeterminado". Esto se debe a que .NET Framework 4.5 es la instancia de .NET Framework predeterminada que usan las aplicaciones de ASP.NET en IIS 8.0 y, como resultado, no se requiere ninguna configuración adicional.
Si usa el Bloc de notas para abrir la página "default.aspx" que acaba de copiar, también verá algunos cambios en comparación con la versión del directorio "example35". No hay directivas de espacio de nombres en la parte superior de la página, ya que .NET Framework 4.5 es el valor predeterminado en IIS 8.0. El código de la página muestra el uso de una variable dynamic, que es un concepto de compilador introducido en .NET Framework 4.0/4.5.
Resumen
IIS 8.0 admite la ejecución de aplicaciones de ASP.NET 3.5 y ASP.NET 4.5 en la misma máquina usando grupos de aplicaciones diferentes para hospedar cada versión de .NET Framework. IIS 8.0 admite varias versiones de .NET Framework, lo que permite a los desarrolladores y administradores aprovechar al máximo IIS 8.0, a la vez que se mantiene la compatibilidad con versiones anteriores con aplicaciones web que permanecen desde Windows Server 2008 R2.