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