Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Although the integrated request-processing pipeline in the IIS 7 Web server core enables native-code developers to write HTTP modules in C++, the event notifications that are available to native-code and managed-code developers are not identical. Developers who are migrating an HTTP module from a managed language such as C# to native code will have to address these differences when they create their new modules.
Global Notifications
With IIS 7, developers can now create native-code HTTP modules that process notifications at the global level. In previous versions of IIS, developers could create HTTP modules that processed notifications at only the request-level. HTTP modules that process notifications at the global level are used to process notifications for a variety of server-level events.
The following table lists the global notification methods that are available to native-code developers.
| Event notification method | Description |
|---|---|
| OnGlobalApplicationResolveModules | Called when IIS resolves the registered modules. |
| OnGlobalApplicationStart | Called when IIS starts an application. |
| OnGlobalApplicationStop | Called when IIS exits an application. |
| OnGlobalCacheCleanup | Called when IIS clears the cache. |
| OnGlobalCacheOperation | Called when IIS performs a cache-related operation. |
| OnGlobalConfigurationChange | Called when a change is made to a configuration file. |
| OnGlobalCustomNotification | Called when a module raises a user-defined notification. |
| OnGlobalFileChange | Called when a file within a Web site is changed. |
| OnGlobalHealthCheck | Called when a health-related operation is executed. |
| OnGlobalPreBeginRequest | Called before a request enters the integrated request-processing pipeline. |
| OnGlobalRSCAQuery | Called when a Run-Time Status and Control query is executed. |
| OnGlobalStopListening | Called when IIS stops accepting new requests. |
| OnGlobalThreadCleanup | Called when IIS returns a thread to the thread pool. |
| OnGlobalTraceEvent | Called when a trace event is raised. |
Comparing Request Notifications
Although request notification methods for native-code and managed-code HTTP modules are similar in many ways, they are not completely analogous. For example, the list of deterministic request notification methods is nearly identical for native-code and managed-code modules, yet the list of nondeterministic request notification methods differs greatly.
Native-Code Deterministic Request Notifications
The following table lists the deterministic request notification methods that are available to native-code developers.
| Event notification method | Post-event notification method |
|---|---|
| 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 Deterministic Request Notifications
The following table lists the deterministic request notification methods that are available to managed-code developers.
| Event notification method | Post-event notification method |
|---|---|
| BeginRequest | (None) |
| AuthenticateRequest | PostAuthenticateRequest |
| AuthorizeRequest | PostAuthorizeRequest |
| ResolveRequestCache | PostResolveRequestCache |
| MapRequestHandler | PostMapRequestHandler |
| AcquireRequestState | PostAcquireRequestState |
| PreRequestHandlerExecute | (None) |
| RequestHandlerExecute | PostRequestHandlerExecute |
| ReleaseRequestState | PostReleaseRequestState |
| UpdateRequestCache | PostUpdateRequestCache |
| LogRequest | PostLogRequest |
| EndRequest | (None) |
Native-Code Nondeterministic Request Notifications
The following table lists the nondeterministic request notification methods that are available to native-code developers.
| Event notification method | Post-event notification method |
|---|---|
| OnAsyncCompletion | (None) |
| OnCustomRequestNotification | (None) |
| OnMapPath | (None) |
| OnReadEntity | (None) |
| OnSendResponse | (None) |
Managed-Code Nondeterministic Request Notifications
The following table lists the nondeterministic request notification methods that are available to managed-code developers.
| Event notification method | Post-event notification method |
|---|---|
| PreSendRequestHeaders | (None) |
| PreSendRequestContent | (None) |
See Also
Creating Native-Code HTTP Modules
Designing Native-Code HTTP Modules