Freigeben über


Vergleichen von Native-Code- und Managed-Code benachrichtigungen

Obwohl die integrierte Anforderungsverarbeitungspipeline im IIS 7-Webserverkern Entwicklern mit nativem Code das Schreiben von HTTP-Modulen in C++ ermöglicht, sind die Ereignisbenachrichtigungen, die für Entwickler von nativem Code und verwaltetem Code verfügbar sind, nicht identisch. Entwickler, die ein HTTP-Modul von einer verwalteten Sprache wie C# zu nativem Code migrieren, müssen diese Unterschiede berücksichtigen, wenn sie ihre neuen Module erstellen.

Globale Benachrichtigungen

Mit IIS 7 können Entwickler jetzt HTTP-Module mit nativem Code erstellen, die Benachrichtigungen auf globaler Ebene verarbeiten. In früheren Versionen von IIS konnten Entwickler HTTP-Module erstellen, die Benachrichtigungen nur auf Anforderungsebene verarbeitet haben. HTTP-Module, die Benachrichtigungen auf globaler Ebene verarbeiten, werden verwendet, um Benachrichtigungen für eine Vielzahl von Ereignissen auf Serverebene zu verarbeiten.

In der folgenden Tabelle sind die globalen Benachrichtigungsmethoden aufgeführt, die entwicklern mit nativem Code zur Verfügung stehen.

Ereignisbenachrichtigungsmethode BESCHREIBUNG
OnGlobalApplicationResolveModules Wird aufgerufen, wenn IIS die registrierten Module auflöst.
OnGlobalApplicationStart Wird aufgerufen, wenn IIS eine Anwendung startet.
OnGlobalApplicationStop Wird aufgerufen, wenn IIS eine Anwendung beendet.
OnGlobalCacheCleanup Wird aufgerufen, wenn IIS den Cache löscht.
OnGlobalCacheOperation Wird aufgerufen, wenn IIS einen cachebezogenen Vorgang ausführt.
OnGlobalConfigurationChange Wird aufgerufen, wenn eine Änderung an einer Konfigurationsdatei vorgenommen wird.
OnGlobalCustomNotification Wird aufgerufen, wenn ein Modul eine benutzerdefinierte Benachrichtigung auslöst.
OnGlobalFileChange Wird aufgerufen, wenn eine Datei innerhalb einer Website geändert wird.
OnGlobalHealthCheck Wird aufgerufen, wenn ein integritätsbezogener Vorgang ausgeführt wird.
OnGlobalPreBeginRequest Wird aufgerufen, bevor eine Anforderung in die integrierte Anforderungsverarbeitungspipeline eintritt.
OnGlobalRSCAQuery Wird aufgerufen, wenn eine Run-Time Status- und Steuerungsabfrage ausgeführt wird.
OnGlobalStopListening Wird aufgerufen, wenn IIS keine neuen Anforderungen mehr akzeptiert.
OnGlobalThreadCleanup Wird aufgerufen, wenn IIS einen Thread an den Threadpool zurückgibt.
OnGlobalTraceEvent Wird aufgerufen, wenn ein Ablaufverfolgungsereignis ausgelöst wird.

Vergleichen von Anforderungsbenachrichtigungen

Obwohl die Methoden der Anforderungsbenachrichtigung für nativen Code und HTTP-Module mit verwaltetem Code in vielerlei Hinsicht ähnlich sind, sind sie nicht vollständig analog. Beispielsweise ist die Liste der Deterministischen Anforderungsbenachrichtigungsmethoden für Module mit nativem Code und verwaltetem Code nahezu identisch, aber die Liste der nicht deterministischen Anforderungsbenachrichtigungsmethoden unterscheidet sich stark.

Native-Code deterministische Anforderungsbenachrichtigungen

In der folgenden Tabelle sind die Deterministischen Anforderungsbenachrichtigungsmethoden aufgeführt, die Entwicklern mit nativem Code zur Verfügung stehen.

Ereignisbenachrichtigungsmethode Benachrichtigungsmethode nach dem Ereignis
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 deterministische Anforderungsbenachrichtigungen

In der folgenden Tabelle sind die Deterministischen Anforderungsbenachrichtigungsmethoden aufgeführt, die Entwicklern mit verwaltetem Code zur Verfügung stehen.

Ereignisbenachrichtigungsmethode Benachrichtigungsmethode nach dem Ereignis
Beginrequest (Keine)
Authenticaterequest PostAuthenticateRequest
Authorizerequest Postauthorizerequest
Resolverequestcache Postresolverequestcache
Maprequesthandler Postmaprequesthandler
Acquirerequeststate Postacquirerequeststate
Prerequesthandlerexecute (Keine)
RequestHandlerExecute Postrequesthandlerexecute
Releaserequeststate PostReleaseRequestState
Updaterequestcache Postupdaterequestcache
Logrequest PostLogRequest
Endrequest (Keine)

Native-Code nicht deterministische Anforderungsbenachrichtigungen

In der folgenden Tabelle sind die nicht deterministischen Anforderungsbenachrichtigungsmethoden aufgeführt, die entwicklern mit nativem Code zur Verfügung stehen.

Ereignisbenachrichtigungsmethode Benachrichtigungsmethode nach dem Ereignis
OnAsyncCompletion (Keine)
OnCustomRequestNotification (Keine)
OnMapPath (Keine)
OnReadEntity (Keine)
OnSendResponse (Keine)

Managed-Code nicht deterministische Anforderungsbenachrichtigungen

In der folgenden Tabelle sind die nicht deterministischen Anforderungsbenachrichtigungsmethoden aufgeführt, die Entwicklern mit verwaltetem Code zur Verfügung stehen.

Ereignisbenachrichtigungsmethode Benachrichtigungsmethode nach dem Ereignis
PreSendRequestHeaders (Keine)
PreSendRequestContent (Keine)

Weitere Informationen

Erstellen von Native-Code HTTP-Modulen
Entwerfen Native-Code HTTP-Module