IIS 7 Web サーバー コアの統合要求処理パイプラインを使用すると、ネイティブ コード開発者は C++ で HTTP モジュールを記述できますが、ネイティブ コード開発者とマネージド コード開発者が使用できるイベント通知は同じではありません。 C# などのマネージド言語からネイティブ コードに HTTP モジュールを移行する開発者は、新しいモジュールを作成するときにこれらの違いに対処する必要があります。
グローバル通知
IIS 7 を使用すると、開発者はグローバル レベルで通知を処理するネイティブ コード HTTP モジュールを作成できるようになりました。 以前のバージョンの IIS では、開発者は要求レベルでのみ通知を処理する HTTP モジュールを作成できました。 グローバル レベルで通知を処理する HTTP モジュールは、さまざまなサーバー レベルのイベントの通知を処理するために使用されます。
次の表に、ネイティブ コード開発者が使用できるグローバル通知メソッドの一覧を示します。
| イベント通知メソッド | 説明 |
|---|---|
| OnGlobalApplicationResolveModules | IIS が登録済みモジュールを解決するときに呼び出されます。 |
| OnGlobalApplicationStart | IIS がアプリケーションを起動するときに呼び出されます。 |
| OnGlobalApplicationStop | IIS がアプリケーションを終了したときに呼び出されます。 |
| OnGlobalCacheCleanup | IIS がキャッシュをクリアするときに呼び出されます。 |
| OnGlobalCacheOperation | IIS がキャッシュ関連の操作を実行するときに呼び出されます。 |
| OnGlobalConfigurationChange | 構成ファイルに変更が加えられたときに呼び出されます。 |
| OnGlobalCustomNotification | モジュールがユーザー定義通知を生成するときに呼び出されます。 |
| OnGlobalFileChange | Web サイト内のファイルが変更されたときに呼び出されます。 |
| OnGlobalHealthCheck | 正常性関連の操作の実行時に呼び出されます。 |
| OnGlobalPreBeginRequest | 要求が統合された要求処理パイプラインに入る前に呼び出されます。 |
| OnGlobalRSCAQuery | Run-Time状態と制御のクエリが実行されたときに呼び出されます。 |
| OnGlobalStopListening | IIS が新しい要求の受け入れを停止したときに呼び出されます。 |
| OnGlobalThreadCleanup | IIS がスレッド プールにスレッドを返すときに呼び出されます。 |
| OnGlobalTraceEvent | トレース イベントが発生したときに呼び出されます。 |
要求通知の比較
ネイティブ コードとマネージド コードの HTTP モジュールの要求通知メソッドは、さまざまな点で似ていますが、完全には似ていません。 たとえば、決定論的な要求通知メソッドの一覧は、ネイティブ コードモジュールとマネージド コード モジュールではほぼ同じですが、非決定的な要求通知メソッドのリストは大きく異なります。
決定論的要求通知のNative-Code
次の表に、ネイティブ コード開発者が使用できる決定論的な要求通知メソッドの一覧を示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| 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
次の表に、マネージド コード開発者が使用できる決定論的な要求通知メソッドを示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| BeginRequest | (なし) |
| AuthenticateRequest | PostAuthenticateRequest |
| AuthorizeRequest | PostAuthorizeRequest |
| ResolveRequestCache | PostResolveRequestCache |
| MapRequestHandler | PostMapRequestHandler |
| AcquireRequestState | PostAcquireRequestState |
| PreRequestHandlerExecute | (なし) |
| RequestHandlerExecute | PostRequestHandlerExecute |
| ReleaseRequestState | PostReleaseRequestState |
| UpdateRequestCache | PostUpdateRequestCache |
| LogRequest | PostLogRequest |
| Endrequest | (なし) |
非決定的な要求通知をNative-Codeする
次の表に、ネイティブ コード開発者が使用できる非決定的な要求通知メソッドを示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| OnAsyncCompletion | (なし) |
| OnCustomRequestNotification | (なし) |
| OnMapPath | (なし) |
| OnReadEntity | (なし) |
| OnSendResponse | (なし) |
非決定的要求通知のManaged-Code
次の表に、マネージド コード開発者が使用できる非決定的な要求通知メソッドを示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| PreSendRequestHeaders | (なし) |
| PreSendRequestContent | (なし) |