상태관리 StateManagent |
Application Application 전역변수 : Public, 모든 사용자가 접근 - 웹 사이트에 딱 1개만 생성 Session Session 전역변수 : Private, 해당 사용자만 접근 - 사용자 수만큼 생성 가능 Session.Timeout = 20분 Timeout 변경 : web.config 의 <Configuration> 안에 <System.web> 안에 아래 코드 추가
<system.web> <!-- 세션 유지 시간 변경(분) : 기본값 : 20분 --> <sessionState timeout="60"></sessionState> Cache Global.asax 추가 카운터 만들 때 사용 게이트 웨이 역할, 들어가는 관문 역할 |
[1] Application 활용 |
//[1] Application 전역변수 출력 // Global.asax에서 초기화 후 모든 웹 페이지에서 사용가능 if (Application["SITE_NAME"] != null) { Response.Write(Application["SITE_NAME"].ToString()); } // 어떠한 전역변수든지 if 문으로 묶는다. // if 문으로 예외처리 필수 if (Application["NO_NAME"] != null) { Response.Write(Application["SITE_NAME2"].ToString()); } |
[2] Session 활용 |
//[2] 세션 변수 출력 // 세션 사용자가 나갈 때 까지 값 유지 if (Session["AccessTime"] != null) { Response.Write(String.Format("접속시간 : {0}", Convert.ToDateTime(Session["AccessTime"]).ToString())); } |
[3] CaChe |
//[3] Cache 개체 // 많이 선언하면 좋지 않다 // 정말로 빠른 속도가 필료한 기능에만... Cache["NAME"] = "김용원"; // cache 개체 생성 // 빨리 실행되야 하는 값 담아두기 if (Cache["Name"] != null) { Response.Write(Cache["NAME"].ToString()); // 출력 } |
Global.asax |
<%@ Application Language="C#" %>
<script runat="server"> void Application_Start(object sender, EventArgs e) { // 응용 프로그램이 시작될 때 실행되는 코드입니다. // 맨 처음 웹 사이트에 들어왔을 때 한번만 발생 // 웹 사이트에 10명이 들어와도 한번만 발생 Application.Lock(); Application["SITE_NAME"] = "닷넷코리아"; // 웹사이트가 살아있는 동안 Application.UnLock(); // 100명이 접속해도 딱 한개 변수만 생성 } void Application_End(object sender, EventArgs e) { // 응용 프로그램이 종료될 때 실행되는 코드입니다. void Application_Error(object sender, EventArgs e) { // 처리되지 않은 오류가 발생할 때 실행되는 코드입니다. void Session_Start(object sender, EventArgs e) { // 새 세션이 시작할 때 실행되는 코드입니다. // 웹사이트에 10명이 들어오면 10번 발생 Session["AccessTime"] = DateTime.Now; // 첫번 째 사용자가 들어왔을 때 접속 시간 따로 // 두번 째 사용자가 들어왔을 때 접속 시간 따로 저장 } void Session_End(object sender, EventArgs e) { // 세션이 끝날 때 실행되는 코드입니다. // 참고: Session_End 이벤트는 Web.config 파일에서 sessionstate 모드가 // InProc로 설정되어 있는 경우에만 발생합니다. 세션 모드가 StateServer // 설정되어 있는 경우에는 이 이벤트가 발생하지 않습니다. } </script> |
'.Net Project > ASP.NET 3.5 Sp1' 카테고리의 다른 글
53장 Output Cache (0) | 2009.10.27 |
---|---|
52장 상태관리 클라이언트측_(ViewState, Cookies, QueryString) (0) | 2009.10.27 |
50장 상태관리(httpContext) (0) | 2009.10.27 |
49장 추적(Trace) (0) | 2009.10.27 |
48장 데이터 컨트롤(Repeater) (0) | 2009.10.27 |