Partilhar via


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

Embora o pipeline de processamento de solicitações integrado no núcleo do servidor Web do IIS 7 permita que os desenvolvedores de código nativo escrevam módulos HTTP no 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. Nas versões anteriores do IIS, os desenvolvedores podiam criar módulos HTTP que processam notificações apenas no nível da solicitação. 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 global 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 dentro de um site é alterado.
OnGlobalHealthCheck Chamado quando uma operação relacionada à saúde é executada.
OnGlobalPreBeginRequest Chamado antes que uma requisição entre no pipeline de processamento de requisição integrado.
OnGlobalRSCAQuery Chamado quando uma consulta de status e controle de tempo de execução é 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 é gerado.

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 de código gerenciado sejam semelhantes em muitos aspectos, 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
SolicitarAutorização OnPostAuthorizeRequest
OnResolveRequestCache Função OnPostResolveRequestCache
OnMapRequestHandler OnPostMapRequestHandler
OnAcquireRequestState OnPostAcquireRequestState
OnPreExecuteRequestHandler OnPostPreExecuteRequestHandler
OnExecuteRequestHandler OnPostExecuteRequestHandler
OnReleaseRequestState OnPostReleaseRequestState
OnUpdateRequestCache OnPostUpdateRequestCache
OnLogRequest OnPostLogRequest
OnEndRequest OnPostEndRequest

Código Gerenciado - Notificações Determinísticas de Solicitação

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 (Nenhum)
Authenticaterequest PostSolicitacaoAutenticar
Authorizerequest Postauthorizerequest
Resolverequestcache Postresolverequestcache
MapRequestHandler PostMapRequestHandler
AcquireRequestState PostAcquireRequestState
PreRequestHandlerExecute (Nenhum)
RequestHandlerExecute Postrequesthandlerexecute
ReleaseRequestState PostReleaseRequestState
Updaterequestcache Postupdaterequestcache
LogRequest Postlogrequest
EndRequest (Nenhum)

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 (Nenhum)
OnCustomRequestNotification (Nenhum)
OnMapPath (Nenhum)
OnReadEntity (Nenhum)
OnSendResponse (Nenhum)

Notificações de Solicitações Não Determinísticas de Código Gerenciado

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 (Nenhum)
PreSendRequestContent (Nenhum)

Consulte Também

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