asp.net 의 2010버전인가 까지는 'global.asax'를 생성하면 메소드들을 미리 생성해 줬는데 이제는 안그렇습니다.
이게 버전업데이트가 되면서 그렇게 된건지 알 수 없지만 불편한 것이 UI지원도 없고(예전엔 있었던거 같은데;;) 자동완성도 안되는데 MSDN을 뒤저봐도 이벤트 자체에 대한 내용이 없습니다-_-;;;;
겨우겨우 찾은것이
"'global.asax'는 'Application_event 패턴'을 사용합니다."
이 문구 뿐-_-;;;;;;;;;
'뭔 소리인가?' 하고 다시 읽어 보니....
아....
'Application_event 패턴'이라는 것이 정확하게 무엇을 의미하는 지는 모르겠습니다.
단지 지원되는 이벤트의 앞에 'Application_'만 붙여주고 함수 형태를 '(object sender, EventArgs e)'이렇게 만들어 주면 됩니다.
예를 들면
void Application_Start(object sender, EventArgs e) { // 응용 프로그램 시작 시 실행되는 코드 }
이런 식으로 말이죠.
쓰는건 몇개 안되는데 갯수는 많네요 ㅎㄷㄷ
이벤트 이름을 클릭하면 해당 MSDN으로 링크 됩니다.
(참고 : MSDN - HttpApplication 클래스, MSDN - SessionStateModule 이벤트, techrepublic - Working with the ASP.NET Global.asax file)
응용프로그램 이벤트들 |
|
Application_End |
응용 프로그램의 인스턴스가 끝날때 한번 발생합니다. |
Application_Init |
응용 프로그램이 초기화 되거나 처음 호출 될때 발생 합니다. |
Application_Start |
사용자가 웹사이트에 접속하여 인스턴스가 생성 될 때 발생하는 이벤트 입니다. |
HttpApplication 클래스 | |
Application_AcquireRequestState |
|
보안 모듈에서 사용자의 ID를 설정한 경우 발생합니다. | |
Application_AuthorizeRequest | 보안 모듈에서 사용자 인증을 확인한 경우 발생합니다. |
Application_BeginRequest |
ASP.NET이 요청에 응답할 때 HTTP 파이프라인 형태의 첫 번째 이벤트로 발생합니다. |
응용 프로그램이 삭제되는 경우 발생합니다. | |
Application_EndRequest | ASP.NET이 요청에 응답할 때 실행의 HTTP 파이프라인 체인에서 마지막 이벤트로 발생합니다. |
처리되지 않은 예외가 throw되는 경우 발생합니다. | |
Application_PostRequestHandlerExecute |
ASP.NET 이벤트 처리기(예: 페이지 또는 XML Web services)가 실행을 완료하는 경우 발생합니다. |
Application_PreRequestHandlerExecute |
ASP.NET에서 페이지 또는 XML Web services 같은 이벤트 처리기의 실행을 시작하기 바로 전에 발생합니다. |
Application_PreSendContent |
ASP.NET에서 클라이언트로 내용을 보내기 바로 전에 발생합니다. |
Applcation_PreSendRequestHeaders | ASP.NET에서 클라이언트로 HTTP 헤더를 보내기 바로 전에 발생합니다. |
Application_ReleaseRequestState | ASP.NET에서 모든 요청 이벤트 처리기 실행을 완료한 후 발생합니다. 이 이벤트는 상태 모듈이 현재 상태 데이터를 저장할 수 있도록 합니다. |
ASP.NET에서 인증 이벤트를 완료하여 이벤트 처리기(예: 페이지 또는 XML Web services)의 실행을 무시하고 캐싱 모듈이 캐시 요청을 처리하도록 하는 경우 발생합니다. | |
ASP.NET이 이벤트 처리기 실행을 완료하여 캐싱 모듈이 캐시의 다음 요청을 처리하는 데 사용할 응답을 저장하도록 하는 경우 발생합니다. |
나머지 'HttpApplication 클래스'이벤트도 동작하는 지는 잘 모르겠군요.
SessionStateModule 이벤트 | |
| |
|
'global.asax'의 이벤트 발생 순서는 다음과 같습니다.
Application_BeginRequest
Application_AuthenticateRequest
Application_AuthorizeRequest
Application_ResolveRequestCache
Application_AcquireRequestState
Application_PreRequestHandlerExecute
Application_PreSendRequestHeaders
Application_PreSendRequestContent
<<code is executed>>
Application_PostRequestHandlerExecute
Application_ReleaseRequestState
Application_UpdateRequestCache
Application_EndRequest
이거 매번 찾아보다가 귀찬아서 그냥 정리 합니다 ㅡ,.ㅡ;;;;
근데 해당 MSDN자료를 찾는게 더 힘들더라는 -_-;