Compartir por


Comparación de notificaciones de Native-Code y Managed-Code

Aunque la canalización integrada de procesamiento de solicitudes en el núcleo del servidor web IIS 7 permite a los desarrolladores de código nativo escribir módulos HTTP en C++, las notificaciones de eventos que están disponibles para los desarrolladores de código nativo y de código administrado no son idénticas. Los desarrolladores que migran un módulo HTTP desde un lenguaje administrado, como C# al código nativo, tendrán que solucionar estas diferencias al crear sus nuevos módulos.

Notificaciones globales

Con IIS 7, los desarrolladores ahora pueden crear módulos HTTP de código nativo que procesan notificaciones a nivel global. En versiones anteriores de IIS, los desarrolladores podían crear módulos HTTP que procesaron notificaciones solo en el nivel de solicitud. Los módulos HTTP que procesan las notificaciones en el nivel global se usan para procesar notificaciones para una variedad de eventos de nivel de servidor.

En la tabla siguiente se enumeran los métodos de notificación globales que están disponibles para los desarrolladores de código nativo.

Método de notificación de eventos Descripción
OnGlobalApplicationResolveModules (Resolver módulos de aplicación global) Se llama cuando IIS resuelve los módulos registrados.
OnGlobalApplicationStart Se llama cuando IIS inicia una aplicación.
OnGlobalApplicationStop Se llama cuando IIS sale de una aplicación.
OnGlobalCacheCleanup Se llama cuando IIS borra la memoria caché.
OnGlobalCacheOperation Se llama cuando IIS realiza una operación relacionada con la memoria caché.
OnGlobalConfigurationChange Se llama cuando se realiza un cambio en un archivo de configuración.
OnGlobalCustomNotification Se llama cuando un módulo genera una notificación definida por el usuario.
OnGlobalFileChange Se llama cuando se cambia un archivo dentro de un sitio web.
OnGlobalHealthCheck Se invoca cuando se ejecuta una operación relacionada con la salud.
OnGlobalPreBeginRequest Se llama antes de que una solicitud entre en la canalización integrada de procesamiento de solicitudes.
OnGlobalRSCAQuery Se llama cuando se ejecuta una consulta de estado y control de Run-Time.
OnGlobalStopListening Se llama cuando IIS deja de aceptar nuevas solicitudes.
OnGlobalThreadCleanup Se invoca cuando IIS devuelve un subproceso al grupo de subprocesos.
OnGlobalTraceEvent Se llama cuando se genera un evento de seguimiento.

Comparación de las notificaciones de solicitud

Aunque los métodos de notificación de solicitud para el código nativo y los módulos HTTP de código administrado son similares de muchas maneras, no son completamente análogos. Por ejemplo, la lista de métodos de notificación de solicitudes deterministas es casi idéntica para los módulos de código nativo y de código administrado, pero la lista de métodos de notificación de solicitudes no deterministas difiere en gran medida.

Notificaciones de solicitud de Código Nativo deterministas

En la tabla siguiente se enumeran los métodos de notificación de solicitud deterministas que están disponibles para los desarrolladores de código nativo.

Método de notificación de eventos Método de notificación posterior al evento
OnBeginRequest OnPostBeginRequest
OnAuthenticateRequest OnPostAuthenticateRequest
AlAutorizarSolicitud OnPostAuthorizeRequest
OnResolveRequestCache OnPostResolveRequestCache
OnMapRequestHandler OnPostMapRequestHandler
OnAcquireRequestState OnPostAcquireRequestState
OnPreExecuteRequestHandler OnPostPreExecuteRequestHandler
OnExecuteRequestHandler OnPostExecuteRequestHandler
OnReleaseRequestState OnPostReleaseRequestState
OnUpdateRequestCache OnPostUpdateRequestCache
OnLogRequest OnPostLogRequest
OnEndRequest OnPostEndRequest

Notificaciones deterministas de solicitudes de código gestionado

En la tabla siguiente se enumeran los métodos de notificación de solicitud deterministas que están disponibles para los desarrolladores de código administrado.

Método de notificación de eventos Método de notificación posterior al evento
BeginRequest (Ninguno)
Autenticar Solicitud PostAuthenticateRequest
SolicitudDeAutorización PostAuthorizeRequest
ResolveRequestCache PostResolveRequestCache
MapRequestHandler PostMapRequestHandler
AcquireRequestState PostAcquireRequestState
PreRequestHandlerExecute (Ninguno)
RequestHandlerExecute PostRequestHandlerExecute
EstadoDeSolicitudDeLiberación EstadoDeSolicitudDePublicación
UpdateRequestCache PostUpdateRequestCache
LogRequest PostLogRequest
EndRequest (Ninguno)

Notificaciones no determinísticas de solicitudes de código nativo

En la tabla siguiente se enumeran los métodos de notificación de solicitud no deterministas que están disponibles para los desarrolladores de código nativo.

Método de notificación de eventos Método de notificación posterior al evento
OnAsyncCompletion (Ninguno)
OnCustomRequestNotification (Ninguno)
OnMapPath (Ninguno)
OnReadEntity (Ninguno)
OnSendResponse (Ninguno)

Notificaciones de solicitud no deterministas de código gestionado

En la tabla siguiente se enumeran los métodos de notificación de solicitud no deterministas que están disponibles para los desarrolladores de código administrado.

Método de notificación de eventos Método de notificación posterior al evento
PreSendRequestHeaders (Ninguno)
PreSendRequestContent (Ninguno)

Véase también

Creación de módulos HTTP de Native-Code
Diseño de módulos HTTP de Native-Code