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