블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Category

Recent Post

Recent Comment

Archive

2009. 10. 27. 02:39 .Net Project/ASP.NET 3.5 Sp1
반응형
 상태관리 StateManagent
 

Application

       Application 전역변수 : Public,  모든 사용자가 접근

               - 사이트에 1개만 생성

Session

      Session 전역변수 : Private, 해당 사용자만 접근

              - 사용자 수만큼 생성 가능

      Session.Timeout = 20

      Timeout 변경 : web.config <Configuration> 안에 <System.web> 안에 아래 코드 추가


<
configuration>

    <system.web>

             <!-- 세션 유지 시간 변경() : 기본값 : 20 -->

     <sessionState timeout="60"></sessionState>


Cache
     Cache 전역변수 : 빠른 속도가 필요한 처리를 보관
     CPU 레지스트리 메모리 사용 가장 안정적  빠른 메모리, 자주 사용하는 데이터 저장 

    Application, Session 사용하기 전에 전역 응용 프로그램 클래스 추가

    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
                또는
SQLServer

        // 설정되어 있는 경우에는 이벤트가 발생하지 않습니다. 

    }      

</script>





반응형
posted by Magic_kit