Export (0) Print
Expand All

Comparing Native-Code and Managed-Code Notifications

IIS 7.0

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.

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.

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)

Community Additions

ADD
Show:
© 2014 Microsoft