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 の フォロー」 お願いします!!