ASP.NET MVC において、/Home/Index へアクセスした場合、発生するイベントの順序を調べてまとめました。
IIS へ アクセス した タイミング によって発生する イベント が異なるので、それぞれ分かるよう プルダウン を準備しました。
調査対象は HttpApplication (Global.asax) 、 IHttpModule 、 IAuthorizeFilter 、 IActionFilter 、 Controller 、 View (*.cshtml) です。
ASP.NET MVC における イベント発生順 まとめ
ライフサイクル
| IIS ライフサイクル | クラス名 | イベント名 / メソッド名 |
|---|---|---|
| Start | Global.asax | Application_Start |
| Init | IHttpModule | Init |
| BeginRequest | IHttpModule | BeginRequest |
| Global.asax | Application_BeginRequest | |
| AuthenticateRequest | IHttpModule | AuthenticatRequest |
| Global.asax | Application_AuthenticateRequest | |
| PostAuthenticateRequest | IHttpModule | PostAuthenticateRequest |
| AuthorizeRequest | IHttpModule | AuthorizeRequest |
| PostAuthorizeRequest | IHttpModule | PostAuthorizeRequest |
| ResolveRequestCache | IHttpModule | ResolveRequestCache |
| PostResolveRequestCache | IHttpModule | PostResolveRequestCache |
| PostMapRequestHandler | IHttpModule | PostMapRequestHandler |
| Session_Start | Global.asax | Session_Start |
| PostAcquireRequestState | IHttpModule | PostAcquireRequestState |
| PreRequestHandlerExecute | IHttpModule | PreRequestHandlerExecute |
| IAuthorizationFilter | OnAuthorization | |
| IActionFilter | OnActionExecuting | |
| HomeController | Index | |
| IActionFilter | OnActionExecuted | |
| IActionFilter | OnResultExecuting | |
| _Page_Views_Home_Index_cshtml | Execute | |
| IActionFilter | OnResultExecuted | |
| PostRequestHandlerExecute | IHttpModule | PostRequestHandlerExecute |
| ReleaseRequestState | IHttpModule | ReleaseRequestState |
| PostReleaseRequestState | IHttpModule | PostReleaseRequestState |
| UpdateRequestCache | IHttpModule | UpdateRequestCache |
| PostUpdateRequestCache | IHttpModule | PostUpdateRequestCache |
| EndRequest | IHttpModule | EndRequest |
| Session_End | Global.asax | Session_End |
| Dispose | IHttpModule | Dispose |
| End | Global.asax | Application_End |
今回、以下のサイトを参考にしました。
- MiYABiS note. - ASP.NET のイベント発生順序
- MSDN - ASP.NET Application Life Cycle Overview
- MSDN - HttpApplication クラス
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!