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 publicó 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, almacenar en memoria caché, generar contenido, etc. antes de atender la primera solicitud HTTP.
Solución
La característica 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 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 Inicialización de aplicaciones también admite la integración con el módulo IIS Url Rewrite para admitir un control más complejo del contenido del marcador de posición mientras una aplicación todavía se está inicializando.
Nota
Hay incompatibilidades conocidas entre la inicialización de aplicaciones y el enrutamiento de solicitudes de aplicación (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 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 de Windows Server 2012 Administrador del servidor se muestra la característica Inicialización de la aplicación.
Nota
En este tutorial también se usa una aplicación de ASP.NET 4.5 para mostrar la característica De inicialización de la aplicación. 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 global de aplicaciones
La característica Inicialización de aplicaciones se puede configurar en dos lugares: el archivo de applicationHost.config de toda la máquina y el archivo de 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 de 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 inicialización de la aplicación en ejecució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 en el %WINDIR%\system32\inetsrv\config
Bloc de notas. (Recuerde ejecutar el editor de texto con la opción "Ejecutar como administrador")
Busque la <sección applicationPools configuration (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 al <sites>
elemento de configuración. En esa sección habrá una <application>
entrada 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 <application>
entrada agregando el atributo preloadEnabled en negrita como se muestra en el fragmento de código de configuración y, a continuación, 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 se establece 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 que se marca para recibir siempre una solicitud falsa, siempre que se reinicie la máquina o el servicio World Wide Web, IIS 8.0 garantiza que la instancia del grupo de aplicaciones se esté ejecutando y que la aplicación "/appinit" siempre se envíe una solicitud falsa para desencadenar la aplicación para que se inicie.
Modificaciones en el web.config de la aplicación
Con una segunda instancia del Bloc de notas, abra el archivo de nivel de aplicación web.config ubicado 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 <system.webServer>
sección de configuración. 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 a "/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 , recicla 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 continuar 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 aplicaciones con el reciclaje de procesos superpuestos mediante la realización de 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 aplicaciones una vez que una aplicación esté activa y en ejecución.
Volver 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 de reciclaje> indica a IIS que rerecicle 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 , recicla 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.
Actualice el explorador varias veces hasta que se devuelva el contenido de la página default.aspx real. Sabe que la aplicación ejecuta la página "real" default.aspx cuando el fondo cambia 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 rerecicle el grupo de aplicaciones. Puede dejar de actualizar la página cuando vea que aparece una segunda instancia de w3wp.exe en la lista de procesos del Administrador de tareas, como se muestra a continuación:
En la captura de pantalla se muestra 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 próximos diez segundos o así. 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, seguirá viendo el contenido del archivo default.aspx "real", aunque la inicialización de la aplicación se configuró para la aplicación y ejecutó 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 la aplicación
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 url que realicen 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 applicationHost.config abierta, revierta tanto el grupo de aplicaciones como los elementos de 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 la aplicación configurado.
Las entradas 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 surtan 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 el nivel de aplicación web.config, quite el atributo remapManagedRequestsTo del <applicationInitialization>
elemento . La <applicationInitialization>
sección de configuración 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 <applicationInitialization>
elemento 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 las solicitudes realizadas a "default.aspx", así como "/" para enrutar a "Startup.htm". Se necesitan dos reglas porque el módulo Url Rewrite no se "sabe" sobre cómo funcionan los documentos predeterminados. Dado que "/" equivale a "default.aspx" en ASP.NET aplicaciones, 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 a tener en cuenta sobre estas reglas: en primer lugar, el atributo stopProcessing se establece en "true" en la <regla o> elementos. Esto es necesario para agregar una regla de reescritura de direcciones URL más adelante y para las solicitudes a default.aspx o "/" que no desea que se ejecute la regla catch-all.
En segundo lugar, tenga en cuenta que tenemos una condición url Rewrite en las <condiciones o> elemento . Esta condición dice efectivamente "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 volver a escribir la solicitud activa para que ejecute "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.
A continuación, agregue una regla de reescritura catch-all. Al usar el módulo Url Rewrite junto con la inicialización de la aplicación, se desencadena una regla de captura que se desencadena si no se necesita ninguna de las reglas anteriores. Agregue la regla en negrita que se muestra a continuación a la sección reescritura como regla catch-all. Como alternativa, puede quitar la marca de comentario de la regla catch-all rellenada previamente en web.config que se encuentra en el comentario "Ejercicio 2- Paso 2: Configuración de una regla de Catch-All" 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 de Url Rewrite 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 ahora se usan reglas de reescritura de direcciones URL para definir la lógica de la página de presentación, sigue viendo 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 default.aspx "real" se está atienden ahora que se ha completado la inicialización de la aplicación.
Reglas de páginas 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 desee atender 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.
Modificaciones en el nivel de aplicación web.config
Con la instancia del Bloc de notas que tiene web.config de nivel de aplicación abierta, agregue otra regla de reescritura de direcciones 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 "Reglas de página de presentación complejas del ejercicio 3- paso 1" 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]+)&?" />
</conditions>
<action type="Rewrite" url="Images/{C:1}_static.jpg" appendQueryString="false" />
</rule>
Guarde los cambios cuando haya terminado.
Al igual que sucede 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. The match pattern definition 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 action: url="Images/{C:1}_static.jpg".
El atributo url del elemento action indica al módulo Url Rewrite que reescriba 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 se servirá en última instancia desde el subdirectorio Images. Por ejemplo, una solicitud a ImageHandler.ashx?image=Tulips se reescribirá en Images/Tulips_static.jpg.
Si examina el directorio inetpub\wwwroot\appinit mediante el Explorador de Windows y busca en el subdirectorio Imágenes, 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 atender mientras se inicializa 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
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 "estáticas" generadas previamente de las imágenes. La marca de agua es texto en la parte superior de la imagen que indica "Esta imagen es la versión estática de...".
Si actualiza el explorador unos 10 segundos más tarde, verá que el contenido de imagen devuelto cambia al contenido "real" que el controlador ImageHandler.ashx sirve. 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, lo que da lugar a una página del explorador en blanco o a un icono de espera giratorio, la característica Inicialización de la aplicación se puede usar para atender 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 global y local de la aplicación, el módulo Url Rewrite se puede integrar para proporcionar reglas de inicialización más complejas y enriquecidas. El uso de reglas de reescritura de direcciones URL integradas con la característica de inicialización de aplicaciones es posible atender diferentes tipos de contenido estático generado previamente para diferentes direcciones URL y rutas de acceso virtuales, mientras que 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 IIS 8.0 instalado y 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 C:\ drive, 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 "appinit" en el sistema de archivos, debe configurar la carpeta como una aplicación 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".
Instalación del módulo Url Rewrite
La aplicación de ejemplo usa el módulo Url Rewrite para la integración avanzada con la característica Inicialización de aplicaciones. Debe instalar el módulo Url Rewrite 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 Url Rewrite en el servidor web, debe modificar el archivo de applicationHost.config IIS para permitir el uso de la variable de servidor 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 C:\ drive, 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.