Freigeben über


Vergleichen von Native-Code und Managed-Code Benachrichtigungen

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

Globale Benachrichtigungen

Mit IIS 7 können Entwickler jetzt http-Module mit systemeigenem 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 zum Verarbeiten von Benachrichtigungen für eine Vielzahl von Ereignissen auf Serverebene verwendet.

In der folgenden Tabelle sind die globalen Benachrichtigungsmethoden aufgeführt, die entwicklern mit systemeigenem 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 verlässt.
OnGlobalCacheCleanup Wird aufgerufen, wenn IIS den Cache löscht.
OnGlobalCacheOperation Wird aufgerufen, wenn IIS einen cachebezogenen Vorgang ausführt.
BeiÄnderungDerGlobalenKonfiguration Wird aufgerufen, wenn eine Änderung an einer Konfigurationsdatei vorgenommen wird.
BeiGlobalerBenutzerdefinierterBenachrichtigung 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 gesundheitsbezogener Vorgang ausgeführt wird.
OnGlobalPreBeginRequest Wird aufgerufen, bevor eine Anforderung in die integrierte Anforderungsverarbeitungspipeline eintritt.
OnGlobalRSCAQuery Wird aufgerufen, wenn eine Run-Time Status- und Steuerelementabfrage 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 Anforderungsbenachrichtigungsmethoden für systemeigene Code und HTTP-Module mit verwaltetem Code auf viele Arten ähnlich sind, sind sie nicht vollständig analog. Beispielsweise ist die Liste der deterministischen Anforderungsbenachrichtigungsmethoden fast identisch für systemeigene Code- und Managed-Code-Module, aber die Liste der nicht deterministischen Anforderungsbenachrichtigungsmethoden unterscheidet sich erheblich.

Native-Code deterministische Anforderungsbenachrichtigungen

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

Ereignisbenachrichtigungsmethode Post-Event-Benachrichtigungsmethode
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 Post-Event-Benachrichtigungsmethode
BeginRequest (Keine)
Authenticaterequest PostAuthenticateRequest
Autorisierungsanfrage Postauthorizerequest
Resolverequestcache Postresolverequestcache
MapRequestHandler PostMapRequestHandler
AcquireRequestState PostAcquireRequestState
PreRequestHandlerExecute (Keine)
RequestHandlerExecute Postrequesthandlerexecute
Freigabeanforderungsstatus PostReleaseRequestState
Updaterequestcache Postupdaterequestcache
Logrequest Postprotokollanforderung
EndRequest (Keine)

Native-Code nicht deterministische Anforderungsbenachrichtigungen

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

Ereignisbenachrichtigungsmethode Post-Event-Benachrichtigungsmethode
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 Post-Event-Benachrichtigungsmethode
VorSendenAnfrageKopfdaten (Keine)
PreSendRequestInhalt (Keine)

Siehe auch

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