Condividi tramite


Confronto tra Native-Code e notifiche di Managed-Code

Anche se la pipeline integrata di elaborazione delle richieste nel core del server Web IIS 7 consente agli sviluppatori di codice nativo di scrivere moduli HTTP in C++, le notifiche degli eventi disponibili per gli sviluppatori di codice nativo e codice gestito non sono identiche. Gli sviluppatori che eseguono la migrazione di un modulo HTTP da un linguaggio gestito, ad esempio C# al codice nativo, dovranno risolvere queste differenze quando creano i nuovi moduli.

Notifiche globali

Con IIS 7, gli sviluppatori possono ora creare moduli HTTP in codice nativo che elaborano le notifiche a livello globale. Nelle versioni precedenti di IIS gli sviluppatori possono creare moduli HTTP che elaborano le notifiche solo a livello di richiesta. I moduli HTTP che elaborano le notifiche a livello globale vengono usati per elaborare le notifiche per un'ampia gamma di eventi a livello di server.

Nella tabella seguente sono elencati i metodi di notifica globali disponibili per gli sviluppatori di codice nativo.

Metodo di notifica eventi Descrizione
OnGlobalApplicationResolveModules Chiamato quando IIS risolve i moduli registrati.
OnGlobalApplicationStart Chiamato quando IIS avvia un'applicazione.
OnGlobalApplicationStop Chiamato quando IIS chiude un'applicazione.
OnGlobalCacheCleanup Chiamato quando IIS cancella la cache.
OnGlobalCacheOperation Chiamato quando IIS esegue un'operazione correlata alla cache.
OnGlobalConfigurationChange Chiamato quando viene apportata una modifica a un file di configurazione.
OnGlobalCustomNotification Chiamato quando un modulo genera una notifica definita dall'utente.
OnGlobalFileChange Chiamato quando viene modificato un file all'interno di un sito Web.
OnGlobalHealthCheck Chiamato quando viene eseguita un'operazione correlata all'integrità.
OnGlobalPreBeginRequest Chiamato prima che una richiesta entri nella pipeline di elaborazione richiesta integrata.
OnGlobalRSCAQuery Chiamato quando viene eseguita una query stato e controllo Run-Time.
OnGlobalStopListening Chiamato quando IIS smette di accettare nuove richieste.
OnGlobalThreadCleanup Chiamato quando IIS restituisce un thread al pool di thread.
OnGlobalTraceEvent Chiamato quando viene generato un evento di traccia.

Confronto delle notifiche di richiesta

Anche se i metodi di notifica delle richieste per i moduli HTTP di codice nativo e codice gestito sono simili in molti modi, non sono completamente simili. Ad esempio, l'elenco dei metodi di notifica delle richieste deterministici è quasi identico per i moduli di codice nativo e di codice gestito, ma l'elenco dei metodi di notifica delle richieste non deterministici differisce notevolmente.

notifiche di richiesta deterministica Native-Code

Nella tabella seguente sono elencati i metodi di notifica delle richieste deterministici disponibili per gli sviluppatori di codice nativo.

Metodo di notifica eventi Metodo di notifica post-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

notifiche di richiesta deterministica Managed-Code

Nella tabella seguente sono elencati i metodi di notifica delle richieste deterministici disponibili per gli sviluppatori di codice gestito.

Metodo di notifica eventi Metodo di notifica post-evento
Beginrequest (nessuna)
AuthenticationRequest PostAuthenticateRequest
AuthorizeRequest PostAuthorizeRequest
ResolveRequestCache PostResolveRequestCache
MapRequestHandler PostMapRequestHandler
AcquireRequestState PostAcquireRequestState
PreRequestHandlerExecute (nessuna)
RequestHandlerExecute PostRequestHandlerExecute
ReleaseRequestState PostReleaseRequestState
UpdateRequestCache PostUpdateRequestCache
LogRequest PostLogRequest
Endrequest (nessuna)

Native-Code Notifiche richieste non deterministiche

Nella tabella seguente sono elencati i metodi di notifica delle richieste non deterministici disponibili per gli sviluppatori di codice nativo.

Metodo di notifica degli eventi Metodo di notifica post-evento
OnAsyncCompletion (nessuna)
OnCustomRequestNotification (nessuna)
OnMapPath (nessuna)
OnReadEntity (nessuna)
OnSendResponse (nessuna)

Managed-Code Notifiche richieste non deterministiche

Nella tabella seguente sono elencati i metodi di notifica delle richieste non deterministici disponibili per gli sviluppatori con codice gestito.

Metodo di notifica degli eventi Metodo di notifica post-evento
PreSendRequestHeaders (nessuna)
PreSendRequestContent (nessuna)

Vedere anche

Creazione di moduli HTTP Native-Code
Progettazione di moduli HTTP Native-Code