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 モジュールの要求通知メソッドは、さまざまな点で似ていますが、完全には似ていません。 たとえば、決定論的な要求通知メソッドの一覧は、ネイティブ コードモジュールとマネージド コード モジュールとほぼ同じですが、非決定的な要求通知メソッドの一覧は大きく異なります。
ネイティブコード決定論的リクエスト通知
次の表に、ネイティブ コード開発者が使用できる確定的な要求通知メソッドを示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| OnBeginRequest | OnPostBeginRequest |
| OnAuthenticateRequest | OnPostAuthenticateRequest |
| OnAuthorizeRequest | OnPostAuthorizeRequest |
| OnResolveRequestCache | OnPostResolveRequestCache |
| OnMapRequestHandler | OnPostMapRequestHandler |
| OnAcquireRequestState | OnPostAcquireRequestState |
| OnPreExecuteRequestHandler | OnPostPreExecuteRequestHandler |
| OnExecuteRequestHandler | OnPostExecuteRequestHandler |
| オンリリースリクエストステート | OnPostReleaseRequestState |
| OnUpdateRequestCache | OnPostUpdateRequestCache |
| OnLogRequest | OnPostLogRequest |
| OnEndRequest | OnPostEndRequest |
Managed-Code 決定論的要求通知
次の表に、マネージド コード開発者が使用できる確定的な要求通知メソッドを示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| リクエスト開始 | (なし) |
| 認証リクエスト (AuthenticateRequest) | PostAuthenticateRequest |
| AuthorizeRequest | PostAuthorizeRequest |
| ResolveRequestCache | PostResolveRequestCache |
| MapRequestHandler | PostMapRequestHandler |
| AcquireRequestState | ポストアクワイアリクエストステート |
| PreRequestHandlerExecute | (なし) |
| リクエストハンドラー実行 | PostRequestHandlerExecute |
| ReleaseRequestState | PostReleaseRequestState |
| UpdateRequestCache | ポストアップデートリクエストキャッシュ |
| LogRequest | ポストログリクエスト |
| EndRequest | (なし) |
ネイティブコードの非決定的な要求通知
次の表に、ネイティブ コード開発者が使用できる非決定的な要求通知メソッドを示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| OnAsyncCompletion | (なし) |
| OnCustomRequestNotification | (なし) |
| OnMapPath | (なし) |
| OnReadEntity | (なし) |
| OnSendResponse | (なし) |
Managed Code 非決定的要求通知
次の表に、マネージド コード開発者が使用できる非決定的な要求通知メソッドを示します。
| イベント通知メソッド | イベント後通知メソッド |
|---|---|
| PreSendRequestHeaders | (なし) |
| PreSendRequestContent(プリセンドリクエストコンテンツ) | (なし) |