Compartir a través de


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 de 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 código administrado no son idénticas. Los desarrolladores que migran un módulo HTTP desde un lenguaje administrado, como C# a código nativo, tendrán que abordar 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 las 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 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 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 llama cuando se ejecuta una operación relacionada con el estado.
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 llama cuando IIS devuelve un subproceso al grupo de subprocesos.
OnGlobalTraceEvent Se llama cuando se genera un evento de seguimiento.

Comparación de notificaciones de solicitud

Aunque los métodos de notificación de solicitud para los módulos HTTP de código nativo y código administrado son similares de muchas maneras, no son completamente análogos. Por ejemplo, la lista de métodos de notificación de solicitud 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 solicitud no deterministas difiere en gran medida.

Notificaciones de solicitud deterministas Native-Code

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

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

Notificaciones de solicitud deterministas Managed-Code

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 (Ninguna)
AuthenticateRequest PostAuthenticateRequest
AuthorizeRequest PostAuthorizeRequest
ResolveRequestCache PostResolveRequestCache
MapRequestHandler PostMapRequestHandler
AcquireRequestState PostAcquireRequestState
PreRequestHandlerExecute (Ninguna)
RequestHandlerExecute PostRequestHandlerExecute
ReleaseRequestState PostReleaseRequestState
UpdateRequestCache PostUpdateRequestCache
LogRequest PostLogRequest
EndRequest (Ninguna)

Notificaciones de solicitud no deterministas Native-Code

En la tabla siguiente se enumeran los métodos de notificación de solicitudes 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 (Ninguna)
OnCustomRequestNotification (Ninguna)
OnMapPath (Ninguna)
OnReadEntity (Ninguna)
OnSendResponse (Ninguna)

Notificaciones de solicitud no deterministas Managed-Code

En la tabla siguiente se enumeran los métodos de notificación de solicitudes 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 (Ninguna)
PreSendRequestContent (Ninguna)

Consulte también

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