다음을 통해 공유


Session 및 ReportDocument 개체 모델의 상태 유지

Session의 정의

Session은 상태를 유지하기 위해 ASP와 ASP.NET 모두에 사용되는 웹 서버 기반의 접근 방식입니다. Session을 사용하면 웹 서버의 메모리에 개체를 저장하여 사용자의 세션이 지속되는 동안 해당 개체의 상태를 유지할 수 있습니다.

Session은 일반적으로 다음 작업 중 하나를 수행하는 데 사용됩니다.

  • 사용자가 웹 응용 프로그램을 탐색하는 데 필요한 로그온 또는 기타 정보와 같이 사용자 세션이 진행되는 동안 해당 상태를 계속 유지해야 하는 정보 저장
  • 기능적으로 그룹화된 페이지 집합 간에만 또는 페이지를 다시 로드할 때만 해당 상태를 유지하면 되는 개체 저장

Session의 이점은 임의의 페이지를 통해 언제든지 액세스할 수 있도록 웹 서버에서 사용자의 상태 정보를 유지할 수 있다는 데 있습니다. 브라우저에서는 이 정보를 저장할 필요가 없으므로 PDA나 휴대폰 같은 브라우저 장치를 비롯한 모든 브라우저를 사용할 수 있습니다.

이 상태 유지 방식의 제한 사항

  • 로그온하는 사용자가 많을수록 Session에 필요한 서버 메모리의 양이 증가합니다.
  • 웹 응용 프로그램에 액세스하는 각 사용자에 대해 별도의 Session 개체가 생성됩니다. 사용자의 방문 기간뿐 아니라 비활성 기간에도 각 Session 개체는 지속됩니다.
  • 각 Session을 통해 유지되는 개체의 수가 많고 여러 사용자가 동시에 웹 응용 프로그램을 사용함에 따라 수많은 Session이 생성되는 경우, Session 유지에 사용되는 서버 메모리의 양이 크게 증가하여 확장성이 제한될 수 있습니다.

상태 유지를 위한 대체 방법으로는 다음을 참조하십시오.

Session을 사용하여 ReportDocument 개체 모델 유지

보고서가 ReportDocument 개체 모델 내에 캡슐화된 경우 Session 또는 Cache 같은 서버 기반 접근 방법을 사용하여 ReportDocument 개체 모델을 유지해야 합니다.

Session을 사용하여 ReportDocument 개체 모델 내의 보고서를 유지하려면 ReportDocument를 인스턴스화한 다음, Session에 할당합니다.

Note참고

자세한 예제는 "자습서: Session을 사용하여 ReportDocument 개체 모델 유지" 자습서를 참조하십시오.

Session은 가장 간단한 접근 방식이며 Crystal Reports를 통해 ASP.NET 웹 응용 프로그램을 빌드하는 방법을 학습하는 과정에서 편리하게 사용할 수 있습니다. 보고서의 공유 수준이 낮은 경우 ReportDocument 인스턴스를 저장하는 데도 이 방법을 사용하는 것이 좋습니다. 공유 수준에 대한 설명은 ""공유 수준이 높은" 보고서 캐시"를 참조하십시오.

Session을 사용한 ReportDocument 개체 모델 유지의 제한 사항

ReportDocument 인스턴스의 공유 수준이 높은 경우에는 항상 Session 대신 Cache를 사용해야 합니다.

Session 및 ViewState 비교

Session은 주로 코드 숨김 클래스에서 개체의 상태를 유지하는 데 사용합니다. ViewState는 주로 웹 페이지에서 컨트롤의 상태를 유지하는 데 사용합니다. 웹 페이지의 컨트롤이 코드 숨김 클래스의 개체에 바인딩되어 있고 페이지를 다시 로드할 때마다 이 둘의 상태를 모두 유지해야 하는 경우, Session 및 ViewState가 함께 상태 유지 역할을 담당합니다.

이 경우 ViewState는 CrystalReportViewer 컨트롤의 상태를 유지하고 Session은 이 컨트롤에 바인딩된 ReportDocument 개체의 상태를 유지합니다.

자습서

다음 자습서에서 보고서의 상태 유지에 대한 좀 더 자세한 내용을 설명합니다.