Compartilhar via


Comparando notificações de Native-Code e Managed-Code

Embora o pipeline integrado de processamento de solicitações no núcleo do servidor Web do IIS 7 permita que os desenvolvedores de código nativo escrevam módulos HTTP em C++, as notificações de evento que estão disponíveis para desenvolvedores de código nativo e de código gerenciado não são idênticas. Os desenvolvedores que estão migrando um módulo HTTP de uma linguagem gerenciada, como C# para código nativo, terão que resolver essas diferenças quando criarem seus novos módulos.

Notificações globais

Com o IIS 7, os desenvolvedores agora podem criar módulos HTTP de código nativo que processam notificações no nível global. Em versões anteriores do IIS, os desenvolvedores podiam criar módulos HTTP que processam notificações apenas no nível da solicitação. Os módulos HTTP que processam notificações no nível global são usados para processar notificações para uma variedade de eventos no nível do servidor.

A tabela a seguir lista os métodos de notificação globais que estão disponíveis para desenvolvedores de código nativo.

Método de notificação de evento Descrição
OnGlobalApplicationResolveModules Chamado quando o IIS resolve os módulos registrados.
OnGlobalApplicationStart Chamado quando o IIS inicia um aplicativo.
OnGlobalApplicationStop Chamado quando o IIS sai de um aplicativo.
OnGlobalCacheCleanup Chamado quando o IIS limpa o cache.
OnGlobalCacheOperation Chamado quando o IIS executa uma operação relacionada ao cache.
OnGlobalConfigurationChange Chamado quando uma alteração é feita em um arquivo de configuração.
OnGlobalCustomNotification Chamado quando um módulo gera uma notificação definida pelo usuário.
OnGlobalFileChange Chamado quando um arquivo em um site é alterado.
OnGlobalHealthCheck Chamado quando uma operação relacionada à integridade é executada.
OnGlobalPreBeginRequest Chamado antes de uma solicitação entrar no pipeline de processamento de solicitação integrado.
OnGlobalRSCAQuery Chamado quando uma consulta status e controle de Run-Time é executada.
OnGlobalStopListening Chamado quando o IIS para de aceitar novas solicitações.
OnGlobalThreadCleanup Chamado quando o IIS retorna um thread para o pool de threads.
OnGlobalTraceEvent Chamado quando um evento de rastreamento é acionado.

Comparando notificações de solicitação

Embora os métodos de notificação de solicitação para módulos HTTP de código nativo e código gerenciado sejam semelhantes de várias maneiras, eles não são completamente análogos. Por exemplo, a lista de métodos de notificação de solicitação determinística é quase idêntica para módulos de código nativo e de código gerenciado, mas a lista de métodos de notificação de solicitação não determinística difere muito.

Native-Code notificações de solicitação determinística

A tabela a seguir lista os métodos de notificação de solicitação determinística que estão disponíveis para desenvolvedores de código nativo.

Método de notificação de evento Método de notificação pós-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

Managed-Code notificações de solicitação determinística

A tabela a seguir lista os métodos de notificação de solicitação determinística que estão disponíveis para desenvolvedores de código gerenciado.

Método de notificação de evento Método de notificação pós-evento
Beginrequest (Nenhuma)
Authenticaterequest Postauthenticaterequest
Authorizerequest Postauthorizerequest
Resolverequestcache Postresolverequestcache
Maprequesthandler Postmaprequesthandler
Acquirerequeststate Postacquirerequeststate
Prerequesthandlerexecute (Nenhuma)
RequestHandlerExecute Postrequesthandlerexecute
Releaserequeststate Postreleaserequeststate
Updaterequestcache Postupdaterequestcache
Logrequest Postlogrequest
Endrequest (Nenhuma)

Native-Code notificações de solicitação não determinísticas

A tabela a seguir lista os métodos de notificação de solicitação não determinística que estão disponíveis para desenvolvedores de código nativo.

Método de notificação de evento Método de notificação pós-evento
OnAsyncCompletion (Nenhuma)
OnCustomRequestNotification (Nenhuma)
OnMapPath (Nenhuma)
OnReadEntity (Nenhuma)
OnSendResponse (Nenhuma)

Managed-Code notificações de solicitação não determinísticas

A tabela a seguir lista os métodos de notificação de solicitação não determinística que estão disponíveis para desenvolvedores de código gerenciado.

Método de notificação de evento Método de notificação pós-evento
PreSendRequestHeaders (Nenhuma)
PreSendRequestContent (Nenhuma)

Consulte Também

Criando módulos HTTP Native-Code
Criando módulos HTTP Native-Code