「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
ライフサイクルとイベント発生順序 †
ライフサイクル †
HttpApplication?(Global.asax)、HttpModule? †
- 同時実行数に合わせてインスタンス化される。
- リクエスト-レスポンス間は専有する(メンバはスレッドセーフ)。
- インスタンス化されたオブジェクトは複数ユーザ間で使いまわされる。
HttpHandler? †
- リクエストの都度、IHttpHandlerFactory?によって、HttpHandler?をインスタンス化。
- <httpHandlers>の定義に従って、拡張子やGET,POSTなどに応じて適切なHttpHandler?をインスタンス化。
イベント発生順序 †
★は初回のみ。
全体の初期処理 †
- Global.Application_Start ★
- IHTTPModule
- Constructor ★
- IHTTPModule.Init ★
リクエストの開始処理 †
- BeginRequest?
- Global.BeginRequest?
- IHTTPModule.BeginRequest?
- Global.Application_BeginRequest?
- Global.DefaultAuthentication?
- AuthenticateRequest?
- Global.AuthenticateRequest?
- IHTTPModule.AuthenticateRequest?
- Global.Application_AuthenticateRequest?
- PostAuthenticateRequest?
- Global.PostAuthenticateRequest?
- IHTTPModule.PostAuthenticateRequest?
- AuthorizeRequest?
- Global.AuthorizeRequest?
- IHTTPModule.AuthorizeRequest?
- PostAuthorizeRequest?
- Global.PostAuthorizeRequest?
- IHTTPModule.PostAuthorizeRequest?
- ResolveRequestCache?
- Global.ResolveRequestCache?
- IHTTPModule.ResolveRequestCache?
- PostResolveRequestCache?
- Global.PostResolveRequestCache?
- IHTTPModule.PostResolveRequestCache?
- PostMapRequestHandler?
- Global.PostMapRequestHandler?
- IHTTPModule.PostMapRequestHandler?
- AcquireRequestState?
- Global.AcquireRequestState?
- IHTTPModule.AcquireRequestState?
- PostAcquireRequestState?
- Global.PostAcquireRequestState?
- IHTTPModule.PostAcquireRequestState?
- PreRequestHandlerExecute?
- Global.PreRequestHandlerExecute?
- IHTTPModule.PreRequestHandlerExecute?
ページの開始処理 †
- Init
- MasterPage?.ContentPlaceHolder?
- MasterPage?
- Page
- Load
- Page
- MasterPage?
- MasterPage?.ContentPlaceHolder?
ページの終了処理 †
- PreRender?
- Page
- MasterPage?
- MasterPage?.ContentPlaceHolder?
- Page
- PreRenderComplete?
- SaveStateComplete?
- Unload
- MasterPage?.ContentPlaceHolder?
- MasterPage?
- Page
リクエストの終了処理 †
- PostRequestHandlerExecute?
- Global.PostRequestHandlerExecute?
- IHTTPModule.PostRequestHandlerExecute?
- ReleaseRequestState?
- Global.ReleaseRequestState?
- IHTTPModule.ReleaseRequestState?
- PostReleaseRequestState?
- Global.PostReleaseRequestState?
- IHTTPModule.PostReleaseRequestState?
- UpdateRequestCache?
- Global.UpdateRequestCache?
- IHTTPModule.UpdateRequestCache?
- PostUpdateRequestCache?
- Global.PostUpdateRequestCache?
- IHTTPModule.PostUpdateRequestCache?
- EndRequest?
- Global.EndRequest?
- IHTTPModule.EndRequest?
- PreSendRequestHeaders?
- Global.PreSendRequestHeaders?
- IHTTPModule.PreSendRequestHeaders?
- PreSendRequestContent?
- Global.PreSendRequestContent?
- IHTTPModule.PreSendRequestContent?
全体の終了処理 †
- Global.Session_End ★
- IHTTPModule.Dispose ★
- Global.Application_End ★
参考 †
主要なイベントの説明 †
# | イベント | 説明 |
1 | BeginRequest? | リクエストを受信して最初に発生 |
2 | AuthenticateRequest? | ASP.NETがユーザの認証処理の準備が完了したときに発生 |
3 | PostAuthenticateRequest? | Post |
4 | AuthorizeRequest? | 権限の承認処理の準備が完了したときに発生 |
5 | PostAuthorizeRequest? | Post |
6 | ResolveRequestCache? | リクエストに対してキャッシュからレスポンスを生成するのかレスポンスを1から生成するのかを決定する |
7 | PostResolveRequestCache? | Post |
8 | PostMapRequestHandler? | 現在の要求を適切なイベント ハンドラにマップすると発生 |
9 | AcquireRequestState? | セッション変数の準備処理 |
10 | PostAcquireRequestState? | Post |
11 | PreRequestHandlerExecute? | 各ハンドラ実行直前に発生 |
12 | PostRequestHandlerExecute? | 各ハンドラ実行直後に発生 |
13 | ReleaserequestState? | セッション変数などの値を更新・保存する |
14 | PostReleaseRequestState? | Post |
15 | UpdateRequestCache? | リクエストキャッシュの更新処理を行う |
16 | PostUpdateRequestCache? | Post |
17 | EndRequest? | クライアントのブラウザへデータを送信する直前に発生 |
18 | PreSendRequestHeaders? | HTTP ヘッダーをクライアントに送信する直前に発生 |
19 | PreSendRequestContent? | コンテンツをクライアントに送信する直前に発生 |
書き換え †
URL †
HttpHandler?でも可能のようだが、HttpModule?を使うことが多い模様。
ResponseBody? †
ResponseHeader? †
参考 †
Tags: :.NET開発, :ASP.NET