Inicialización de aplicaciones IIS 8.0

por Shaun Eagan

Compatibilidad

Versión Notas
IIS 8.0 La inicialización de la aplicación se ha integrado para IIS 8.0.
IIS 7.5 La Inicialización de aplicaciones se lanzó como un módulo fuera de banda para IIS 7.5.
IIS 7.0 No se admite la inicialización de aplicaciones para IIS 7.0.

Problema

Un problema común al que se enfrentan los administradores del sitio web es la necesidad de realizar tareas de inicialización y tareas de "preparación" para una aplicación web. Es posible que las aplicaciones web más grandes y complejas necesiten realizar un procesamiento de inicio largo, preparar cachés en memoria, generar contenido, etc... antes de atender la primera solicitud HTTP.

Solución

La característica de inicialización de aplicaciones de IIS 8.0 permite a los administradores del sitio web configurar IIS 8.0 para realizar de forma proactiva tareas de inicialización para una o varias aplicaciones web. Mientras se inicializa una aplicación, IIS 8.0 también se puede configurar para devolver contenido estático como marcador de posición o "página de presentación" hasta que una aplicación haya completado sus tareas de inicialización.

La característica de Inicialización de aplicaciones se configura mediante una combinación de reglas globales y específicas de la aplicación que indican a IIS 8.0 cómo y cuándo inicializar aplicaciones web. La característica de Inicialización de aplicaciones también admite la integración con el Módulo de Reescritura de direcciones URL de IIS para admitir un control más complejo del contenido del marcador de posición mientras una aplicación se sigue inicializando.

Nota:

Hay incompatibilidades conocidas entre la Inicialización de aplicaciones y el Enrutamiento de solicitud de aplicaciones (ARR). No se recomienda usar la Inicialización de aplicaciones en máquinas con ARR instalado.

Habilitación de la autenticación de Azure Active Directory Domain Services en Azure Files

Requisitos previos

La característica de Inicialización de aplicaciones requiere que IIS 8.0 esté instalado. Además, es necesario instalar la característica de inicialización de aplicaciones dentro de la subconsulta "Desarrollo de aplicaciones" de IIS.

En la captura de pantalla siguiente de la interfaz de usuario del Administrador del servidor de Windows Server 2012 se muestra la característica de Inicialización de aplicaciones.

Screenshot showing the Application Initialization feature installed on Windows Server 2012.

Nota:

En este tutorial también se usa una aplicación ASP.NET 4.5 para demostrar la característica de Inicialización de aplicaciones. El Apéndice al final de este documento incluye la aplicación de ejemplo e instrucciones sobre cómo configurar la aplicación en el equipo.

Soluciones alternativas para errores conocidos

  • En este momento no hay errores conocidos para esta característica.

Inicialización de aplicaciones globales

La característica de Inicialización de aplicaciones se puede configurar en dos lugares: el archivo applicationHost.config de toda la máquina y el archivo web.config de nivel de aplicación. La configuración del archivo applicationHost.config contiene la configuración de inicialización de la aplicación "global", mientras que un archivo web.config de nivel de aplicación contiene la configuración de inicialización de la aplicación "local".

En este tutorial, configurará una aplicación de ejemplo para que siempre se inicialice cuando se inicie el grupo de aplicaciones asociado a la aplicación. Dado que los comportamientos del grupo de aplicaciones solo se pueden configurar en applicationHost.config, la ejecución de la inicialización de la aplicación siempre que se inicia un grupo de aplicaciones se considera parte de la configuración de inicialización de la aplicación "global".

Modificaciones en applicationHost.config

Abra el archivo applicationHost.config ubicado en %WINDIR%\system32\inetsrv\config en el Bloc de notas. (Recuerde ejecutar el editor de texto con la opción "Ejecutar como administrador")

Busque la sección configuración de <applicationPools> y busque la entrada del grupo de aplicaciones con el nombre ".NET v4.5".

Modifique la entrada del grupo de aplicaciones para que el grupo de aplicaciones siempre se esté ejecutando. En el caso de las aplicaciones en las que desea que se produzca la inicialización global de aplicaciones, normalmente quiere que se inicie y ejecute el grupo de aplicaciones asociado. El atributo en negrita del fragmento de código de configuración muestra qué agregar a la entrada de configuración.

<add name=".NET v4.5" startMode="AlwaysRunning" managedRuntimeVersion="v4.0" />

Desplácese hacia abajo un poco más en applicationHost.config hasta el elemento de configuración <sites>. Dentro de esa sección habrá una entrada de <application> para la aplicación de ejemplo (consulte el Apéndice para obtener instrucciones sobre cómo crear la aplicación de ejemplo en el equipo). La aplicación se denomina "appinit" y tiene un valor de atributo path de "/appinit". Modifique la entrada de <application> agregando el atributo preloadEnableden negrita como se muestra en el fragmento de código de configuración y guarde los cambios.

<application path="/appinit" preloadEnabled="true" applicationPool=".NET v4.5">

Al establecer preloadEnabled en "true" se indica a IIS 8.0 que envía una solicitud "falsa" a la aplicación cuando se inicia el grupo de aplicaciones asociado. Por eso, en el paso anterior, establecemos el startMode del grupo de aplicaciones en "AlwaysRunning".

Con la combinación del grupo de aplicaciones siempre en ejecución, y la propia aplicación marcada para recibir siempre una solicitud falsa, cada vez que la máquina se reinicia o el servicio World Wide Web se recicla, IIS 8.0 garantiza que la instancia del grupo de aplicaciones se esté ejecutando y que siempre se envíe una solicitud falsa a la aplicación "/appinit" para que la aplicación se inicie.

Modificaciones en web.config de la aplicación

Con una segunda instancia del Bloc de notas, abra el archivo web.config de nivel de aplicación localizado en la siguiente ubicación. (Recuerde ejecutar el editor de texto con la opción "Ejecutar como administrador")

C:\inetpub\wwwroot\appinit

Nota: Cambie la letra de unidad si el sitio web predeterminado está instalado en una unidad física diferente.

El archivo web.config tiene algunas secciones de configuración ya rellenadas previamente, pero comentadas. Quite la marca de comentario del fragmento de código de configuración que se muestra dentro de la sección de configuración de <system.webServer>. Este fragmento de código está justo debajo del comentario "Ejercicio 1: paso 1" en el archivo web.config. A continuación, guarde los cambios.

<applicationInitialization
    remapManagedRequestsTo="Startup.htm" 
    skipManagedModules="true" >
  <add initializationPage="/default.aspx" />
</applicationInitialization>

El elemento applicationInitialization indica a IIS que debe emitir una solicitud a la dirección URL raíz de la aplicación ("/default.aspx" en este ejemplo) para inicializar la aplicación. Mientras IIS espera a que se complete la solicitud "/default.aspx", servirá "Startup.htm" a cualquier cliente de explorador activo. "Startup.htm" es la "página de presentación" de la aplicación.

Ejecución de la aplicación

Desde una ventana del símbolo del sistema con privilegios elevados, recicle el servicio World Wide Web con el comando que se muestra a continuación:

net stop w3svc & net start w3svc

Recuerde ejecutar la ventana del símbolo del sistema con la opción "Ejecutar como administrador".

Con Internet Explorer, vaya a la siguiente dirección URL:

http://localhost/appinit/default.aspx

El explorador devuelve la página estática "Startup.htm" con un fondo gris durante los primeros segundos porque es la "página de presentación" que se ha configurado en web.config. Puede seguir actualizando la página en el explorador web y observar que aproximadamente ocho segundos más tarde (simulado con un subproceso inactivo en el archivo global.asax de la aplicación de ejemplo) recibe el contenido "real" para default.aspx con un fondo blanco. Esto indica que se completó la inicialización de la aplicación.

Configuración del reciclaje de procesos superpuestos

IIS 8.0 integra la inicialización global de la aplicación con el reciclaje de procesos superpuestos realizando la inicialización de la aplicación en un proceso superpuesto en segundo plano. Cuando IIS detecta que se recicla un proceso de trabajo activo, IIS no cambia el tráfico activo al nuevo proceso de trabajo reciclado hasta que el nuevo proceso de trabajo termina de ejecutar todas las direcciones URL de inicialización de la aplicación en el nuevo proceso. Esto garantiza que los clientes que exploran el sitio web no vean las páginas de inicialización de la aplicación una vez que una aplicación esté activa y en ejecución.

Vuelva a la instancia del Bloc de notas que tiene applicationHost.config. Modifique la entrada del grupo de aplicaciones para ".NET v4.5" para que tenga un aspecto similar al fragmento de código de configuración que se muestra a continuación:

<add name=".NET v4.5"
                startMode="AlwaysRunning"
    managedRuntimeVersion="v4.0" >
  <recycling logEventOnRecycle="Schedule">
    <periodicRestart requests="30" />
  </recycling>
</add>

Recuerde guardar los cambios.

El elemento <reciclaje> indica a IIS que recicle el proceso de trabajo cada 30 solicitudes HTTP.

Ejecución de la aplicación una segunda vez

Desde una ventana del símbolo del sistema con privilegios elevados, recicle el servicio World Wide Web con el comando que se muestra a continuación:

net stop w3svc & net start w3svc

Con una nueva instancia de Internet Explorer, vuelva a navegar a:

http://localhost/appinit/default.aspx

Tenga en cuenta que se muestra la página de presentación "Startup.htm" con el fondo gris.

A continuación, extraiga el Administrador de tareas y asegúrese de que se muestra la pestaña Procesos. Ordene la lista de procesos por nombre hasta que vea una instancia de w3wp.exe en ejecución. Esa instancia es el proceso de trabajo que actualmente ejecuta la aplicación "appinit" ASP.NET.

Screenshot showing the Task Manager process list running one instance of the w 3 w p executable file.

Actualice el explorador varias veces hasta que se devuelva el contenido de la página real default.aspx. Sabrá que la aplicación ejecuta la página "real" default.aspx cuando el fondo cambie a blanco. A continuación, organice las ventanas en la pantalla para que pueda ver tanto el Administrador de tareas como el explorador.

Ahora vuelva al explorador y actualice la página al menos 30 veces, lo que hace que IIS recicle el grupo de aplicaciones. Puede dejar de actualizar la página cuando vea una segunda instancia de w3wp.exe aparecer en la lista de procesos del Administrador de tareas, como se muestra a continuación:

Screenshot showing the second instance of the w 3 w p executable file in the Task Manager process list.

La captura de pantalla muestra que la segunda instancia de w3wp.exe se ha iniciado debido al límite de reciclaje de procesos establecido anteriormente.

Puede continuar actualizando periódicamente la ventana del explorador durante los siguientes diez segundos aproximadamente. Tenga en cuenta que default.aspx continúa ejecutándose. Cuando se completa el reciclaje superpuesto, una instancia de w3wp.exe desaparece de la ventana Proceso del Administrador de tareas.

A lo largo de la duración del reciclaje superpuesto, se sigue viendo el contenido del default.aspx "real" servido, aunque la inicialización de la aplicación se configuró para la aplicación y estaba ejecutando la dirección URL de inicialización en segundo plano en la nueva instancia de w3wp.exe.

Reescritura de direcciones URL e Inicialización de aplicaciones

De forma predeterminada, la inicialización de la aplicación solo permite especificar una única dirección URL de "página de presentación" para mostrar mientras se inicializa una aplicación. Sin embargo, la característica de Inicialización de aplicaciones admite algunas variables de servidor que se pueden usar para controlar el procesamiento de solicitudes mientras se inicializa una aplicación. Esto le permite crear reglas declarativas mediante el Módulo de Reescritura de direcciones URL que contiene asignaciones más complejas al contenido estático generado previamente.

En este tutorial, reemplazará el atributo remapManagedRequestsTo por un conjunto de reglas de Reescritura de direcciones URL que realizan el mismo resultado final.

Nota: Consulte el apéndice para obtener instrucciones sobre cómo instalar la Reescritura de direcciones URL.

Modificaciones en applicationHost.config

Con la instancia del Bloc de notas que tiene abierto applicationHost.config, revierta tanto el grupo de aplicaciones como los elementos de la aplicación para desactivar todo el procesamiento de inicialización de la aplicación global. La configuración global se quita en este paso, ya que el resto de este tutorial se centra en el comportamiento de Inicialización de aplicaciones configurado.

Las entradas de applicationHost.config para el grupo de aplicaciones y la aplicación se muestran a continuación.

Entrada de configuración del grupo de aplicaciones:

<add name=".NET v4.5" managedRuntimeVersion="v4.0" />

Entrada de configuración de la aplicación:

<application path="/appinit" applicationPool=".NET v4.5">

Recuerde guardar los cambios cuando haya terminado.

Además, para asegurarse de que los cambios surten efecto en IIS, desde una ventana del símbolo del sistema con privilegios elevados, recicle el servicio World Wide Web con el comando que se muestra a continuación:

net stop w3svc & net start w3svc

Modificaciones en el nivel de aplicación web.config

Con la instancia del Bloc de notas que tiene abierto web.config de nivel de aplicación, quite el atributo remapManagedRequestsTo del elemento <applicationInitialization>. La sección de configuración de <applicationInitialization> debería tener ahora un aspecto similar al de este fragmento de código de configuración.

<applicationInitialization skipManagedModules="true" >
  <add initializationPage="/default.aspx" />
</applicationInitialization>

Dado que el elemento <applicationInitialization> ya no define una dirección URL a la que reasignar las solicitudes, agregue un conjunto de reglas de Reescritura de direcciones URL. A continuación, agregue una regla de reescritura que asigne explícitamente solicitudes realizadas a "default.aspx", así como "/" para enrutar a "Startup.htm". Se necesitan dos reglas porque el Módulo de reescritura de direcciones URL no sabe cómo funcionan los documentos predeterminados. Dado que "/" equivale a "default.aspx" en aplicación ASP.NET, necesita dos reglas de Reescritura de direcciones URL: una regla para cada variación de Url.

Las nuevas reglas se muestran en negrita a continuación. Como alternativa, puede quitar la marca de comentario de las reglas de Reescritura de direcciones URL rellenadas previamente en el comentario "Ejercicio 2- Paso 2 Asignación de solicitudes a la página principal" en el archivo web.config.

<rewrite> 
  <rules>
    <rule name="Home Page-Expanded" stopProcessing="true">
      <match url="default.aspx" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="Home Page-Short" stopProcessing="true">
      <match url="^$" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
  </rules>
</rewrite>

Algunos elementos que se deben tener en cuenta sobre estas reglas: en primer lugar, el atributo stopProcessing se establece en "true" en la regla /< o los elementos >. Esto es necesario para agregar una regla de Reescritura de direcciones URL de captura más adelante y para las solicitudes a default.aspx o "/" que no desea que ejecuten la regla de captura.

En segundo lugar, tenga en cuenta que tenemos una condición de Reescritura de direcciones URL en el elemento <conditions />. Esta condición dice de forma eficaz "solo aplicar regla cuando la aplicación está en un estado de inicialización". IIS establece la variable de servidor "APP_WARMING_UP" en un valor de "1" cuando la inicialización de la aplicación está activa y IIS sigue procesando todas las direcciones URL de inicialización.

Por último, tenga en cuenta que la acción se ha definido para reescribir la solicitud activa para ejecutar "Startup.htm". Esta regla tiene el efecto de indicar a IIS que pase la solicitud al controlador de archivos estáticos que, a continuación, representa la página estática Startup.htm.

Después, agregará una regla de reescritura de captura. Cuando se usa el Módulo de reescritura de Url junto con la inicialización de la aplicación, se desencadena una regla de captura si no se necesita ninguna de las reglas anteriores. Agregue la regla en negrita que se muestra a continuación a la sección de reescritura como regla de captura. Como alternativa, puede quitar la marca de comentario de la regla de captura rellenada previamente en web.config que se encuentra en el comentario "Ejercicio 2- Paso 2 Configuración de una regla de captura" en el archivo web.config.

<rewrite> 
  <rules>
    <rule name="Home Page-Expanded" stopProcessing="true">
      <match url="default.aspx" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="Home Page-Short" stopProcessing="true">
      <match url="^$" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="All Other Requests">
      <match url=".*" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <serverVariables>
        <set name="SKIP_MANAGED_MODULES" value="0" />
      </serverVariables>
      <action type="Rewrite" url="{URL}" />
    </rule>
  </rules>
</rewrite>

Guarde los cambios cuando haya terminado.

La nueva regla coincide con cualquier dirección URL que la alcance e indica a IIS que continúe procesando la solicitud que se realizó en la dirección URL de entrada. La regla también establece una variable de servidor denominada "SKIP_MANAGED_MODULES" en un valor de "0", que equivale a "false". Esta configuración indica a IIS que debe tratar la solicitud reescrita desde la Reescritura de URL de la misma manera que si la solicitud hubiera llegado normalmente fuera de la conexión.

Ejecución de la aplicación

Desde una ventana del símbolo del sistema con privilegios elevados, recicle el servicio World Wide Web con el comando que se muestra a continuación:

net stop w3svc & net start w3svc

Con una nueva instancia de Internet Explorer, vuelva a navegar a:

http://localhost/appinit/default.aspx

Aunque las reglas de Reescritura de URL ahora se usan para definir la lógica de la página de presentación, todavía verá el mismo comportamiento del primer tutorial. La página Startup.htm con el fondo gris se muestra inicialmente. Si actualiza el explorador periódicamente, aproximadamente ocho segundos más tarde, verá el cambio de fondo de página a blanco, lo que indica que la página "real" default.aspx se está sirviendo ahora que se ha completado la inicialización de la aplicación.

Reglas de página de presentación complejas

Los tutoriales anteriores usan la inicialización de la aplicación como una asignación directa de la dirección URL "X" a la dirección URL "Y". En este tutorial, va a implementar un escenario de inicialización de aplicaciones más complejo.

En el explorador, vaya a las dos direcciones URL siguientes:

  • http://localhost/appinit/ImageHandler.ashx?image=Lighthouse
  • http://localhost/appinit/ImageHandler.ashx?image=Tulips

Estas direcciones URL son ejemplos de contenido estático generado dinámicamente. Para esta aplicación de ejemplo, el código dentro de ImageHandler.ashx examina la clave de cadena de consulta "image". Si el valor de esa cadena de consulta es "Lighthouse" o "Tulips", el controlador de ASP.NET transmite el JPG correspondiente que se encuentra en la carpeta App_Data.

Dado que el controlador de imágenes solo devuelve imágenes, desea poder seguir devolviendo una imagen adecuada incluso durante la inicialización de la aplicación. Aunque la mecánica del servicio de estas imágenes usa código administrado, es posible que quiera proporcionar rápidamente imágenes generadas previamente a los clientes incluso si la aplicación de ASP.NET subyacente tarda mucho tiempo en iniciarse e inicializarse a sí misma.

Modificaciones en el nivel de aplicación web.config

Con la instancia del Bloc de notas que tiene abierto web.config de nivel de aplicación, agregue otra regla de Reescritura de URL antes de la regla de captura final. A continuación se muestra el nuevo fragmento de código que se va a agregar. Como alternativa, puede quitar la marca de comentario de la regla de controlador de imágenes rellenada previamente en web.config que se encuentra en el comentario "Ejercicio 3 - Paso 1 Reglas de página de presentación complejas" en el archivo web.config.

<rule name="Image Handler Remapping" stopProcessing="true">
  <match url="ImageHandler.ashx" />
  <conditions>
    <add input="{APP_WARMING_UP}" pattern="1" /> 
    <add input="{QUERY_STRING}" pattern="image=([A-Za-z]+)&amp;?" /> 
  </conditions>
  <action type="Rewrite" url="Images/{C:1}_static.jpg" appendQueryString="false" />
</rule>

Guarde los cambios cuando haya terminado.

Al igual que con las reglas de reescritura para default.aspx y "/", esta regla tiene el atributo stopProcessing establecido en "true" para asegurarse de que las solicitudes a ImageHandler.ashx no entran accidentalmente en la regla de reescritura de captura final durante la inicialización de la aplicación.

Para las solicitudes a "ImageHandler.ashx", la regla de reescritura usa un grupo de captura de expresiones regulares para extraer la imagen solicitada de la cadena de consulta. La definición del patrón de coincidencia pattern="image=([A-Za-z]+)&?" indica a IIS que extraiga el valor de la variable de cadena de consulta "image". A continuación, ese valor se usa en el atributo url del atributo de acción: url="Images/{C:1}_static.jpg".

El atributo URL del elemento de acción indica al Módulo de Reescritura de URL que vuelva a escribir las solicitudes ImageHandler.ashx para que apunten en su lugar a los archivos del subdirectorio Images de la aplicación. Además, el valor de cadena de consulta capturado por la expresión regular se usa para ayudar a formar el nombre del archivo que, en última instancia, se servirá desde el subdirectorio Images. Por ejemplo, una solicitud a ImageHandler.ashx?image=Tulips se volverá a escribir en Images/Tulips_static.jpg.

Si examina el directorio inetpub\wwwroot\appinit mediante el Explorador de Windows y busca en el subdirectorio Images, verá dos archivos: uno que representa la versión "estática" de Tulips.jpg y la otra que representa la versión "estática" de Lighthouse.jpg. Estas imágenes estáticas actúan como contenido generado previamente que se puede servir mientras la aplicación se inicializa.

Ejecución de la aplicación

Desde una ventana del símbolo del sistema con privilegios elevados, recicle el servicio World Wide Web con el comando que se muestra a continuación:

net stop w3svc & net start w3svc

Con Internet Explorer, vaya a:

http://localhost/appinit/ImageHandler.ashx?image=Lighthouse

o

http://localhost/appinit/ImageHandler.ashx?image=Tulips

Observe cómo las imágenes devueltas en cualquier caso incluyen una marca de agua que indica que son las versiones pregeneradas "estáticas" de las imágenes. La marca de agua es texto en la parte superior de la imagen que dice "Esta imagen es la versión estática de...".

Si actualiza el explorador aproximadamente 10 segundos más tarde, verá que el controlador ImageHandler.ashx sirve el contenido de imagen devuelto al contenido "real". La marca de agua desaparece, lo que indica que el controlador de ASP.NET genera dinámicamente el contenido, ya que la aplicación ha completado la inicialización.

[Nota: Si Internet Explorer parece no actualizarse, haga clic en el icono "documento roto" en la barra de direcciones o en el icono de actualización para forzar a Internet Explorer a volver a cargar la página.]

Resumen

La característica de inicialización de aplicaciones de IIS 8.0 ofrece a los desarrolladores y administradores la capacidad de devolver contenido estático a los exploradores mientras IIS inicializa una aplicación "inactiva". Servir contenido estático inmediatamente a los exploradores ofrece a los clientes una mejor experiencia de usuario. En lugar de las aplicaciones de arranque en frío, que da como resultado una página de explorador en blanco o un icono de espera giratorio, la característica Inicialización de aplicaciones se puede usar para servir contenido estático relevante mientras la aplicación subyacente completa el procesamiento de inicialización costoso.

El proceso de inicialización puede producirse automáticamente cada vez que un servidor web se pone en línea o se recicla. En escenarios en los que los administradores del servidor no quieren inicializar aplicaciones de forma expansiva, el proceso de inicialización se puede desencadenar a petición cuando la primera solicitud llega a una aplicación "inactiva".

Para la inicialización de aplicaciones globales y locales, el módulo Reescritura de Url se puede integrar para proporcionar reglas de inicialización más complejas y enriquecidas. Con el uso de reglas de Reescritura de direcciones URL integradas con la característica de Inicialización de aplicaciones es posible servir diferentes tipos de contenido estático generado previamente para diferentes direcciones URL y rutas de acceso virtuales mientras IIS sigue iniciando una aplicación en segundo plano.

Apéndice: Configuración de la aplicación de ASP.NET de ejemplo

Nota: en los pasos siguientes se supone que el servidor ya tiene ambos instalados, tanto IIS 8.0 como ASP.NET 4.5 habilitado para su uso en IIS 8.0.

Desempaquetar la aplicación de ejemplo

La aplicación ASP.NET de ejemplo se encuentra en el siguiente archivo .zip:

Descomprima el archivo en la carpeta wwwroot del servidor web. Por ejemplo, si el servidor web instaló el "Sitio web predeterminado" en la unidad C:\, descomprima el contenido del archivo en c:\inetpub\wwwroot\appinit.

Creación de una aplicación en IIS 8.0

Después de descomprimir el ejemplo de "appinit" en el sistema de archivos, debe configurar la carpeta como una aplicación de ASP.NET en IIS 8.0. En la captura de pantalla siguiente se muestra la aplicación de ejemplo appinit configurada como una aplicación en IIS 8.0. Observe también que la aplicación se asigna al grupo de aplicaciones ".NET v4.5".

Screenshot of the I I S Manager's Advanced Settings menu.The sample appication and application pool are highlighted.

Instalación del Módulo de Reescritura de direcciones URL

La aplicación de ejemplo usa el módulo de Reescritura de direcciones URL para la integración avanzada con la característica de Inicialización de aplicaciones. Debe instalar el módulo de Reescritura de direcciones URL en el servidor; se puede descargar desde: https://www.iis.net/downloads/microsoft/url-rewrite.

Configuración del Módulo de Reescritura de direcciones URL

Una vez instalado el Módulo de Reescritura de direcciones URL en el servidor web, debe modificar el archivo applicationHost.config de IIS para permitir el uso de la variable de servidor de SKIP_MANAGED_MODULES compatible con la característica de Inicialización de aplicaciones.

Abra el archivo applicationHost.config de toda la máquina en un editor de texto, como el Bloc de notas. Por ejemplo, si instaló el sistema operativo en la unidad C:\, el archivo applicationHost.config se encuentra en C:\Windows\System32\inetsrv\config.

Desplácese hacia abajo en el archivo y busque la sección de seguridad. Esta sección comienza con el elemento Xml: <security>.

Escriba los siguientes elementos Xml antes del <elemento de seguridad>:

<rewrite>
  <allowedServerVariables>
    <add name="SKIP_MANAGED_MODULES" />
  </allowedServerVariables>
</rewrite>

Guarde los cambios en el archivo applicationHost.config.