次の方法で共有


Native-Code 通知と Managed-Code 通知の比較

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(プリセンドリクエストコンテンツ) (なし)

こちらもご覧ください

Native-Code HTTP モジュールの作成
Native-Code HTTP モジュールの設計