Asp.Net Global.asax内イベント発生する順序を参考にされては
Application_Start
↓
Application_BeginRequest (HTTPリクエストハンドラでのリクエスト処理開始前)
↓
Application_AuthenticateRequest (認証準備完了後)
↓
Application_AuthorizeRequest (ユーザ認証完了後)
↓
Application_ResolveRequestCache (キャッシュからの後続の要求を処理するために使用する応答をキャッシング モジュールで格納できる)
ここまでセッションを利用できません。
↓
Session_Start (セッション開始、この前のイベント内セッションを利用できません。)
↓
Application_AcquireRequestState (リクエストに関連した状態(セッション等)を取得時
↓
Application_PreRequestHandlerExecute (HTTPハンドラによるページ実行直前)
↓
Application_PostRequestHandlerExecute (HTTPハンドラによるページ実行終了後)
↓
Application_ReleaseRequestState (実行処理の終了後)
ここからセッションを利用できません。
↓
Application_UpdateRequestCache (出力キャッシュ更新後)
↓
Application_EndRequest (HTTPリクエスト処理完了後)
↓
Application_PreSendRequestHandlers (HTTPヘッダ情報送信前)
筆者の環境ではこのイベント入りません
↓
Application_PreSendRequestContent (HTTPコンテンツ情報送信前)