Introducción a las arquitecturas de IIS

por el equipo de IIS, Reagan Templin

Compatibilidad

Versión Notas
IIS 7.0 y versiones posteriores Las características descritas en este artículo se introdujeron en IIS 7.0.
IIS 6.0 y versiones anteriores Las características descritas en este artículo no se admiten antes de IIS 7.0.

Introducción

Internet Information Services (IIS) 7 y versiones posteriores proporcionan una arquitectura de procesamiento de solicitudes que incluye:

  • El Servicio de activación de procesos de Windows (WAS), que permite a los sitios usar protocolos distintos de HTTP y HTTPS.
  • Un motor de servidor web que se puede personalizar agregando o quitando módulos.
  • Canalizaciones integradas de procesamiento de solicitudes desde IIS y ASP.NET.

Componentes en IIS

IIS contiene varios componentes que realizan funciones importantes para las funciones de aplicación y servidor web en Windows Server® 2008 (IIS 7.0) y Windows Server 2008 R2 (IIS 7.5). Cada componente tiene responsabilidades, como escuchar solicitudes realizadas al servidor, administrar procesos y leer archivos de configuración. Estos componentes incluyen agentes de escucha de protocolo, como HTTP.sys y servicios, como World Wide Web Publishing Service (servicio WWW) y Servicio de activación de procesos de Windows (WAS).

Agentes de escucha de protocolo

Los agentes de escucha de protocolo reciben solicitudes específicas del protocolo, las envían a IIS para su procesamiento y, a continuación, devuelven respuestas a los solicitantes. Por ejemplo, cuando un explorador cliente solicita una página web desde Internet, el agente de escucha HTTP, HTTP.sys, selecciona la solicitud y la envía a IIS para su procesamiento. Una vez que IIS procesa la solicitud, HTTP.sys devuelve una respuesta al explorador cliente.

De forma predeterminada, IIS proporciona HTTP.sys como agente de escucha de protocolo que escucha las solicitudes HTTP y HTTPS. HTTP.sys se introdujo en IIS 6.0 como agente de escucha de protocolo específico de HTTP para solicitudes HTTP. HTTP.sys sigue siendo el agente de escucha HTTP en IIS 7 y versiones posteriores, pero incluye compatibilidad con capa de sockets seguros (SSL).

Para admitir servicios y aplicaciones que usan protocolos distintos de HTTP y HTTPS, puede usar tecnologías como Windows Communication Foundation (WCF). WCF tiene adaptadores de agente de escucha que proporcionan la funcionalidad de un agente de escucha de protocolo y un adaptador de agente de escucha. Los adaptadores del agente de escucha se tratan más adelante en este documento. Para obtener más información sobre WCF, vea Windows Communication Foundation en MSDN.

Pila de protocolos de transferencia de hipertexto (HTTP.sys)

El agente de escucha HTTP forma parte del subsistema de redes de sistemas operativos Windows y se implementa como un controlador de dispositivo en modo kernel denominado pila HTTP (HTTP.sys). HTTP.sys escucha las solicitudes HTTP de la red, pasa las solicitudes a IIS para su procesamiento y, a continuación, devuelve respuestas procesadas a los exploradores cliente.

En IIS 6.0, HTTP.sys reemplazó a la API de Windows Sockets (Winsock), que era un componente en modo de usuario usado por versiones anteriores de IIS para recibir solicitudes HTTP y enviar respuestas HTTP. IIS 7 y versiones posteriores siguen usando HTTP.sys para las solicitudes HTTP.

HTTP.sys proporciona las siguientes ventajas:

  • Almacenamiento en caché en modo kernel. Las solicitudes de respuestas almacenadas en caché se sirven sin cambiar al modo de usuario.
  • Puesta en cola de solicitudes en modo kernel. Las solicitudes provocan menos sobrecarga en el cambio de contexto porque el kernel reenvía las solicitudes directamente al proceso de trabajo correcto. Si no hay ningún proceso de trabajo disponible para aceptar una solicitud, la cola de solicitudes en modo kernel contiene la solicitud hasta que un proceso de trabajo la recoge.
  • Solicitar el procesamiento previo y el filtrado de seguridad.

Servicio de publicación World Wide Web (servicio WWW)

En IIS 7 y versiones posteriores, la funcionalidad que anteriormente administraba el servicio de publicación World Wide Web (servicio WWW) solo se divide entre dos servicios: Servicio WWW y un nuevo servicio, Servicio de activación de procesos de Windows (WAS). Estos dos servicios se ejecutan como LocalSystem en el mismo proceso de Svchost.exe y comparten los mismos archivos binarios.

Nota:

También puede ver el servicio WWW denominado W3SVC en la documentación.

Funcionamiento del servicio WWW en IIS 6.0

En IIS 6.0, el servicio WWW administra las siguientes áreas principales en IIS:

  • Administración y configuración de HTTP
  • Administración de procesos
  • Supervisión del rendimiento

Administración y configuración de HTTP

El servicio WWW lee la información de configuración de la metabase de IIS y usa esa información para configurar y actualizar el agente de escucha HTTP, HTTP.sys. Además, el servicio WWW inicia, detiene, supervisa y administra los procesos de trabajo que procesan las solicitudes HTTP.

Supervisión del rendimiento

El servicio WWW supervisa el rendimiento y proporciona contadores de rendimiento para sitios web y para la caché de IIS.

Administración de procesos

El servicio WWW administra los grupos de aplicaciones y los procesos de trabajo, como iniciar, detener y reciclar procesos de trabajo. Además, el servicio WWW supervisa el estado de los procesos de trabajo e invoca la detección rápida de errores para evitar que se inicien nuevos procesos cuando se produzca un error en varios procesos de trabajo en un período de tiempo configurable.

Funcionamiento del servicio WWW en IIS

En IIS, el servicio WWW ya no administra los procesos de trabajo. En su lugar, el servicio WWW es el adaptador del agente de escucha para el agente de escucha HTTP, HTTP.sys. Como adaptador del agente de escucha, el servicio WWW es principalmente responsable de configurar HTTP.sys, actualizar HTTP.sys cuando cambia la configuración y notificar a WAS cuando una solicitud entra en la cola de solicitudes.

Además, el servicio WWW continúa recopilando los contadores de los sitios web. Dado que los contadores de rendimiento siguen formando parte del servicio WWW, son específicos de HTTP y no se aplican a WAS.

Servicio de activación de procesos de Windows (WAS)

En IIS 7 y versiones posteriores, Windows Process Activation Service (WAS) administra la configuración del grupo de aplicaciones y los procesos de trabajo en lugar del servicio WWW. Esto le permite usar el mismo modelo de configuración y proceso para sitios HTTP y no HTTP.

Además, puede ejecutar WAS sin el servicio WWW si no necesita funcionalidad HTTP. Por ejemplo, puede administrar un servicio web a través de un adaptador de agente de escucha WCF, como NetTcpActivator, sin ejecutar el servicio WWW si no necesita escuchar solicitudes HTTP en HTTP.sys. Para obtener información sobre los adaptadores del agente de escucha de WCF y sobre cómo hospedar aplicaciones WCF en IIS 7 y versiones posteriores mediante WAS, vea Hospedaje en WCF en MSDN.

Administración de configuración en WAS

Al iniciarse, WAS lee cierta información del archivo ApplicationHost.config y pasa esa información a adaptadores de escucha en el servidor. Los adaptadores de agente de escucha son componentes que establecen la comunicación entre WAS y los agentes de escucha de protocolo, como HTTP.sys. Una vez que los adaptadores de escucha reciben información de configuración, configuran sus agentes de escucha de protocolo relacionados y preparan a los agentes de escucha para que escuchen las solicitudes.

En el caso de WCF, un adaptador de agente de escucha incluye la funcionalidad de un agente de escucha de protocolo. Por lo tanto, un adaptador de agente de escucha WCF, como NetTcpActivator, se configura en función de la información de WAS. Una vez configurado NetTcpActivator, escucha las solicitudes que usan el protocolo net.tcp. Para obtener más información sobre los adaptadores del agente de escucha de WCF, vea Arquitectura de activación WAS en MSDN.

En la lista siguiente se describe el tipo de información que WAS lee de la configuración:

  • Información de configuración global
  • Información de configuración del protocolo para protocolos HTTP y no HTTP
  • Configuración del grupo de aplicaciones, como la información de la cuenta de proceso
  • Configuración del sitio, como enlaces y aplicaciones
  • Configuración de aplicaciones, como los protocolos habilitados y los grupos de aplicaciones a los que pertenecen las aplicaciones

Si cambia ApplicationHost.config, WAS recibe una notificación y actualiza los adaptadores del agente de escucha con la nueva información.

Administración de procesos

WAS administra los grupos de aplicaciones y los procesos de trabajo para las solicitudes HTTP y no HTTP. Cuando un agente de escucha de protocolo recoge una solicitud de cliente, WAS determina si un proceso de trabajo se está ejecutando o no. Si un grupo de aplicaciones ya tiene un proceso de trabajo que está atendiendo las solicitudes, el adaptador del agente de escucha pasa la solicitud al proceso de trabajo para su procesamiento. Si no hay ningún proceso de trabajo en el grupo de aplicaciones, WAS iniciará un proceso de trabajo para que el adaptador del agente de escucha pueda pasar la solicitud a él para su procesamiento.

Nota:

Dado que WAS administra procesos para protocolos HTTP y no HTTP, puede ejecutar aplicaciones con protocolos diferentes en el mismo grupo de aplicaciones. Por ejemplo, puede desarrollar una aplicación, como un servicio XML, y hospedarla en HTTP y net.tcp.

Modules in IIS (Introducción a las arquitecturas de IIS: módulos de IIS)

IIS proporciona una nueva arquitectura diferente de las versiones anteriores de IIS. En lugar de mantener la mayor parte de la funcionalidad dentro del propio servidor, IIS incluye un motor de servidor web en el que puede agregar o quitar componentes, denominados módulos, en función de sus necesidades.

Los módulos son características individuales que el servidor usa para procesar solicitudes. Por ejemplo, IIS usa módulos de autenticación para autenticar las credenciales de cliente y los módulos de caché para administrar la actividad de caché.

La nueva arquitectura proporciona las siguientes ventajas respecto a las versiones anteriores de IIS:

  • Puede controlar qué módulos desea en el servidor.
  • Puede personalizar un servidor a un rol específico en su entorno.
  • Puede usar módulos personalizados para reemplazar los módulos existentes o para introducir nuevas características.

La nueva arquitectura también mejora la seguridad y simplifica la administración. Al quitar módulos innecesarios, se reduce la superficie de ataque y la superficie de memoria del servidor, que es la cantidad de memoria que usan los procesos de trabajo del servidor en la máquina. También elimina la necesidad de administrar características innecesarias para sus sitios y aplicaciones.

Módulos nativos

En las secciones siguientes se describen los módulos nativos que están disponibles con una instalación completa de IIS 7 y versiones posteriores. Puede quitarlos o reemplazarlos por módulos personalizados, en función de sus necesidades.

Módulos HTTP

Varios módulos de IIS 7 y versiones posteriores realizan tareas específicas del Protocolo de transferencia de hipertexto (HTTP) en la canalización de procesamiento de solicitudes. Los módulos HTTP incluyen módulos para responder a información y consultas enviadas en encabezados de cliente, devolver errores HTTP, redirigir solicitudes, etc.

Nombre del módulo Descripción Recurso
CustomErrorModule Envía mensajes de error HTTP predeterminados y configurados cuando se establece un código de estado de error en una respuesta. Inetsrv\Custerr.dll
HttpRedirectionModule Admite el redireccionamiento configurable para las solicitudes HTTP. Inetsrv\Redirect.dll
ProtocolSupportModule Realiza acciones relacionadas con el protocolo, como establecer encabezados de respuesta y redirigir encabezados en función de la configuración. Inetsrv\Protsup.dll
RequestFilteringModule Agregado en IIS 7.5. Filtra las solicitudes como configuradas para controlar el protocolo y el comportamiento del contenido. Inetsrv\modrqflt.dll
WebDAVModule Agregado en IIS 7.5. Permite la publicación más segura del contenido mediante HTTP a través de SSL. Inetsrv\WebDAV.dll

Módulos de seguridad

Varios módulos de IIS realizan tareas relacionadas con la seguridad en la canalización de procesamiento de solicitudes. Además, hay módulos independientes para cada uno de los esquemas de autenticación, que permiten seleccionar módulos para los tipos de autenticación que desee en el servidor. También hay módulos que realizan la autorización de direcciones URL y un módulo que filtra las solicitudes.

Nombre del módulo Descripción Recurso
AnonymousAuthenticationModule Realiza la autenticación anónima cuando ningún otro método de autenticación se realiza correctamente. Inetsrv\Authanon.dll
BasicAuthenticationModule Realiza la autenticación básica. Inetsrv\Authbas.dll
CertificateMappingAuthenticationModule Realiza la autenticación de asignación de certificados mediante Active Directory. Inetsrv\Authcert.dll
DigestAuthenticationModule Realiza la autenticación implícita. Inetsrv\Authmd5.dll
IISCertificateMappingAuthenticationModule Realiza la autenticación de asignación de certificados mediante la configuración del certificado IIS. Inetsrv\Authmap.dll
RequestFilteringModule Realiza tareas de URLScan, como configurar verbos permitidos y extensiones de nombre de archivo, establecer límites y examinar secuencias de caracteres incorrectas. Inetsrv\Modrqflt.dll
UrlAuthorizationModule Realiza la autorización de dirección URL. Inetsrv\Urlauthz.dll
WindowsAuthenticationModule Realiza la autenticación integrada NTLM. Inetsrv\Authsspi.dll
IpRestrictionModule Restringe las direcciones IPv4 enumeradas en la lista ipSecurity en la configuración. Inetsrv\iprestr.dll

Módulos de contenido

Varios módulos de IIS realizan tareas relacionadas con el contenido de la canalización de procesamiento de solicitudes. Los módulos de contenido incluyen módulos para procesar solicitudes de archivos estáticos, para devolver una página predeterminada cuando un cliente no especifica un recurso en una solicitud, para enumerar el contenido de un directorio, etc.

Nombre del módulo Descripción Recurso
CgiModule Ejecuta procesos de Common Gateway Interface (CGI) para generar la salida de la respuesta. Inetsrv\Cgi.dll
DefaultDocumentModule Intenta devolver un documento predeterminado para las solicitudes realizadas al directorio primario. Inetsrv\Defdoc.dll
DirectoryListingModule Enumera el contenido de un directorio. Inetsrv\dirlist.dll
IsapiModule Hospeda archivos DLL de extensión ISAPI. Inetsrv\Isapi.dll
IsapiFilterModule Admite archivos DLL de filtro ISAPI. Inetsrv\Filter.dll
ServerSideIncludeModule Los procesos del lado servidor incluyen código. Inetsrv\Iis_ssi.dll
StaticFileModule Proporciona archivos estáticos. Inetsrv\Static.dll
FastCgiModule Admite FastCGI, que proporciona una alternativa de alto rendimiento a CGI. Inetsrv\iisfcgi.dll

Módulos de compresión

Dos módulos de IIS realizan la compresión en la canalización de procesamiento de solicitudes.

Nombre del módulo Descripción Recurso
DynamicCompressionModule Comprime las respuestas y aplica la codificación de transferencia de compresión Gzip a las respuestas. Inetsrv\Compdyn.dll
StaticCompressionModule Realiza la compresión previa del contenido estático. Inetsrv\Compstat.dll

Módulos de almacenamiento en caché

Varios módulos de IIS realizan tareas relacionadas con el almacenamiento en caché en la canalización de procesamiento de solicitudes. El almacenamiento en caché mejora el rendimiento de los sitios web y las aplicaciones web almacenando información procesada, como páginas web, en memoria en el servidor y, a continuación, reutilizando esa información en solicitudes posteriores para el mismo recurso.

Nombre del módulo Descripción Recurso
FileCacheModule Proporciona almacenamiento en caché en modo de usuario para archivos e identificadores de archivo. Inetsrv\Cachfile.dll
HTTPCacheModule Proporciona el modo kernel y el almacenamiento en caché del modo de usuario en HTTP.sys. Inetsrv\Cachhttp.dll
TokenCacheModule Proporciona almacenamiento en caché en modo de usuario de pares de nombre de usuario y token para módulos que generan entidades de seguridad de usuario de Windows. Inetsrv\Cachtokn.dll
UriCacheModule Proporciona almacenamiento en caché del modo de usuario de la información de dirección URL. Inetsrv\Cachuri.dll

Módulos de registro y diagnóstico

Varios módulos de IIS realizan tareas relacionadas con el registro y el diagnóstico en la canalización de procesamiento de solicitudes. Los módulos de registro admiten la carga de módulos personalizados y pasar información a HTTP.sys. Los módulos de diagnóstico siguen y notifican eventos durante el procesamiento de solicitudes.

Nombre del módulo Descripción Recurso
CustomLoggingModule Carga de módulos de registro personalizados. Inetsrv\Logcust.dll
FailedRequestsTracingModule Admite la característica de Seguimiento de solicitudes con error. Inetsrv\Iisfreb.dll
HttpLoggingModule Pasa información y estado de procesamiento a HTTP.sys para el registro. Inetsrv\Loghttp.dll
RequestMonitorModule Realiza un seguimiento de las solicitudes que se ejecutan actualmente en procesos de trabajo e informa de información con el estado en tiempo de ejecución y la interfaz de programación de aplicaciones de control (RSCA). Inetsrv\Iisreqs.dll
TracingModule Notifica eventos a Seguimiento de eventos para Windows de Microsoft (ETW). Inetsrv\Iisetw.dll

Módulos de soporte administrado

Un par de módulos en IIS admiten la integración administrada en la canalización de procesamiento de solicitudes de IIS.

Nombre del módulo Descripción Recurso
ManagedEngine Proporciona la integración de módulos de código administrado en la canalización de procesamiento de solicitudes de IIS. Microsoft.NET\Framework\v2.0.50727\webengine.dll
ConfigurationValidationModule Valida los problemas de configuración, como cuando una aplicación se ejecuta en modo integrado, pero tiene controladores o módulos declarados en la sección system.web. Inetsrv\validcfg.dll

Módulos administrados

Además de los módulos nativos, IIS permite usar módulos de código administrado para ampliar la funcionalidad de IIS. Algunos de los módulos administrados, como UrlAuthorization, tienen un homólogo de módulo nativo que proporciona una alternativa nativa al módulo administrado.

Nota:

Los módulos administrados dependen del módulo ManagedEngine.

En la tabla siguiente se enumeran los módulos administrados que están disponibles con una instalación completa de IIS 7 y versiones posteriores. Para obtener más información sobre los módulos administrados, consulte SDK 2.0 de .NET Framework en MSDN.

Nombre del módulo Descripción Recurso
AnonymousIdentification Administra identificadores anónimos, que usan las características que admiten la identificación anónima, como ASP.NET perfil. System.Web.Security.AnonymousIdentificationModule
DefaultAuthentication Garantiza que un objeto de autenticación esté presente en el contexto. System.Web.Security.DefaultAuthenticationModule
FileAuthorization Comprueba que un usuario tiene permiso para acceder al archivo solicitado. System.Web.Security.FileAuthorizationModule
FormsAuthentication Admite la autenticación mediante la autenticación de formularios. System.Web.Security.FormsAuthenticationModule
OutputCache Admite el almacenamiento en caché de salida. System.Web.Caching.OutputCacheModule
Perfil Administra los perfiles de usuario mediante el perfil de ASP.NET, que almacena y recupera la configuración del usuario en un origen de datos, como una base de datos. System.Web.Profile.ProfileModule
RoleManager Administra una instancia de RolePrincipal para el usuario actual. System.Web.Security.RoleManagerModule
Sesión Admite el mantenimiento del estado de sesión, que permite el almacenamiento de datos específicos de un solo cliente dentro de una aplicación en el servidor. System.Web.SessionState.SessionStateModule
UrlAuthorization Determina si el usuario actual tiene permiso de acceso a la dirección URL solicitada, en función del nombre de usuario o de la lista de roles de los que un usuario es miembro. System.Web.Security.UrlAuthorizationModule
UrlMappingsModule Admite la asignación de una dirección URL real a una dirección URL más fácil de usar. System.Web.UrlMappingsModule
WindowsAuthentication Establece la identidad del usuario para una aplicación de ASP.NET cuando está habilitada la autenticación de Windows. System.Web.Security.WindowsAuthenticationModule

Procesamiento de solicitudes en IIS

En IIS, las canalizaciones de solicitud IIS y ASP.NET se combinan para procesar solicitudes con un enfoque integrado. La nueva arquitectura de procesamiento de solicitudes consta de una lista ordenada de módulos nativos y administrados que realizan tareas específicas en respuesta a las solicitudes.

Este diseño proporciona varias ventajas sobre las versiones anteriores de IIS. En primer lugar, todos los tipos de archivo pueden usar características que originalmente estaban disponibles solo para código administrado. Por ejemplo, ahora puede usar la autenticación de formularios ASP.NET y la autorización de Localizador uniforme de recursos (URL) para archivos estáticos, páginas Active Server (ASP) y todos los demás tipos de archivos de los sitios y aplicaciones.

En segundo lugar, este diseño elimina la duplicación de varias características en IIS y ASP.NET. Por ejemplo, cuando un cliente solicita un archivo administrado, el servidor llama al módulo de autenticación adecuado en la canalización integrada para autenticar al cliente. En versiones anteriores de IIS, esta misma solicitud pasaría por un proceso de autenticación tanto en la canalización de IIS como en la canalización de ASP.NET.

En tercer lugar, puede administrar todos los módulos en una ubicación, en lugar de administrar algunas características de IIS y algunas en la configuración de ASP.NET. Esto simplifica la administración de sitios y aplicaciones en el servidor.

Grupos de aplicaciones en IIS

Los grupos de aplicaciones separan las aplicaciones por límites de proceso para evitar que una aplicación afecte a otra aplicación en el servidor. En IIS 7 y versiones posteriores, los grupos de aplicaciones siguen usando el modo de aislamiento de proceso de trabajo de IIS 6.0. Además, ahora puede especificar una configuración que determine cómo procesar las solicitudes que implican recursos administrados: modo integrado o modo clásico.

Nota:

En IIS 6.0, el modo de aislamiento de proceso de trabajo y el modo de aislamiento de IIS 5.0 se establecen en el nivel de servidor. Esto hace imposible ejecutar ambos modos de aislamiento en el mismo servidor. Sin embargo, en IIS 7 y versiones posteriores, el modo integrado y el modo clásico se establecen en el nivel de grupo de aplicaciones, lo que permite ejecutar aplicaciones simultáneamente en grupos de aplicaciones con diferentes modos de proceso en el mismo servidor.

Modo de grupo de aplicaciones integrado

Cuando un grupo de aplicaciones está en modo integrado, puede aprovechar la arquitectura integrada de procesamiento de solicitudes de IIS y ASP.NET. Cuando un proceso de trabajo de un grupo de aplicaciones recibe una solicitud, la solicitud pasa a través de una lista ordenada de eventos. Cada evento llama a los módulos nativos y administrados necesarios para procesar partes de la solicitud y generar la respuesta.

Ejecutar grupos de aplicaciones en modo integrado tiene varias ventajas. En primer lugar, los modelos de procesamiento de solicitudes de IIS y ASP.NET se integran en un modelo de proceso unificado. Este modelo elimina los pasos que se duplicaron anteriormente en IIS y ASP.NET, como la autenticación. Además, el modo integrado permite la disponibilidad de las características administradas en todos los tipos de contenido.

Modo de grupo de aplicaciones clásico

Cuando un grupo de aplicaciones está en modo clásico, IIS 7 y versiones posteriores controla las solicitudes de la misma manera que en el modo de aislamiento de proceso de trabajo de IIS 6.0. Las solicitudes de ASP.NET pasan primero por los pasos de procesamiento nativo en IIS y, a continuación, se enrutan a Aspnet_isapi.dll para el procesamiento de código administrado en tiempo de ejecución administrado. Por último, la solicitud se enruta a través de IIS para enviar la respuesta.

Esta separación de IIS y los modelos de procesamiento de solicitudes de ASP.NET da como resultado la duplicación de algunos pasos de procesamiento, como la autenticación y la autorización. Además, las características de código administrado, como la autenticación de formularios, solo están disponibles para aplicaciones ASP.NET o aplicaciones para las que se han asignado scripts a todas las solicitudes que aspnet_isapi.dll controlar.

Asegúrese de probar las aplicaciones existentes para que sean compatibles en modo integrado antes de actualizar un entorno de producción a IIS 7 y versiones posteriores y asignar aplicaciones a grupos de aplicaciones en modo integrado. Solo debe agregar una aplicación a un grupo de aplicaciones en modo clásico si la aplicación no funciona en modo integrado. Por ejemplo, la aplicación podría depender de un token de autenticación pasado de IIS al entorno de ejecución administrado y, debido a la nueva arquitectura de IIS 7 y versiones posteriores, el proceso interrumpe la aplicación.

Procesamiento de solicitudes HTTP en IIS

IIS 7 y versiones posteriores tienen un flujo de procesamiento de solicitudes HTTP similar a IIS 6.0. Los diagramas de esta sección proporcionan información general sobre una solicitud HTTP en proceso.

En la lista siguiente se describe el flujo de procesamiento de solicitudes que se muestra en la ilustración 1:

  1. Cuando un explorador cliente inicia una solicitud HTTP para un recurso en el servidor web, HTTP.sys intercepta la solicitud.
  2. HTTP.sys contacta WAS para obtener información del almacén de configuración.
  3. WAS solicita información de configuración del almacén de configuración, applicationHost.config.
  4. El servicio WWW recibe información de configuración, como el grupo de aplicaciones y la configuración del sitio.
  5. El servicio WWW usa la información de configuración para configurar HTTP.sys.
  6. WAS inicia un proceso de trabajo para el grupo de aplicaciones al que se realizó la solicitud.
  7. El proceso de trabajo procesa la solicitud y devuelve una respuesta a HTTP.sys.
  8. El cliente recibe una respuesta.

Diagram shows a client in Kernel Mode interacting with elements in User Mode as described above.

Ilustración 1: Información general de una solicitud HTTP

En un proceso de trabajo, una solicitud HTTP pasa por varios pasos ordenados, denominados eventos, en Web Server Core. En cada evento, un módulo nativo procesa parte de la solicitud, como autenticar al usuario o agregar información al registro de eventos. Si una solicitud requiere un módulo administrado, el módulo ManagedEngine nativo crea un AppDomain, donde el módulo administrado puede realizar el procesamiento necesario, como autenticar a un usuario con autenticación de Forms. Cuando la solicitud pasa por todos los eventos de Web Server Core, la respuesta se devuelve a HTTP.sys. En la ilustración 2, a continuación, se muestra una solicitud HTTP que entra en el proceso de trabajo.

Diagram shows the Worker Process, which contains the Web Server Core, linked to the Native Modules, linked to the AppDomain.

Ilustración 2: Detalle de una solicitud HTTP dentro del proceso de trabajo