다음을 통해 공유


실행 상태 식별

HTTP(Hypertext Transfer Protocol)는 연결이 없고 상태 비정상 프로토콜입니다. 연결이 없고 상태 비저장이면 다른 요청이 동일한 클라이언트에서 오는지 또는 단일 브라우저 인스턴스가 여전히 페이지 또는 사이트를 적극적으로 보고 있는지 여부를 자동으로 나타내지 않습니다. 세션은 HTTP를 통해 서버와 클라이언트 간의 상태를 유지하기 위해 논리적 연결을 만듭니다. 특정 세션과 관련된 사용자별 정보를 세션 상태라고 합니다.

세션 관리에는 HTTP 요청과 동일한 세션에서 생성된 다른 이전 요청의 상관 관계가 포함됩니다. 세션 관리가 없으면 HTTP 프로토콜의 연결 없는 상태 비저장 특성으로 인해 이러한 요청은 보고서 서버 웹 서비스와 관련이 없는 것으로 나타납니다.

Reporting Services는 ASP.NET 노출하는 것과 같은 세션 상태의 전체적인 개념을 노출하지 않습니다. 그러나 보고서를 실행할 때 보고서 서버는 메서드 호출 간의 상태를 실행 형식으로 유지 관리합니다. 실행을 통해 사용자는 보고서 서버에서 보고서 로드, 보고서의 자격 증명 및 매개 변수 설정, 보고서 렌더링 등 여러 가지 방법으로 보고서와 상호 작용할 수 있습니다.

클라이언트는 보고서 서버와 통신하는 동안 실행을 사용하여 보고서의 다른 페이지에 대한 보고서 보기 및 사용자 탐색을 관리하고 보고서의 섹션을 표시하거나 숨깁니다. 클라이언트 애플리케이션에서 실행 중인 각 보고서별로 고유한 실행이 존재합니다.

일반적으로 실행 수명은 사용자가 브라우저 또는 클라이언트 애플리케이션으로 이동하고 볼 보고서를 선택할 때 시작됩니다. 실행에 대한 마지막 요청이 수신된 후 짧은 시간 제한 기간 후에 실행이 삭제됩니다(기본 제한 시간은 20분).

웹 서비스 관점에서 수명은 보고서 서버 웹 서비스 LoadReportLoadReportDefinition또는 Render 메서드가 호출되면 시작됩니다. 애플리케이션은 다른 메서드를 사용하여 활성 실행을 조작할 수 있습니다(예: 매개 변수 설정 및 데이터 원본 설정). 실행에 대한 마지막 요청이 수신된 후 짧은 시간 제한 기간 후에 실행이 삭제됩니다(기본 제한 시간은 20분).

애플리케이션은 웹 서비스에 Render 대한 호출과 RenderStream 메서드를 저장하여 여러 활성 실행을 추적합니다 ExecutionID. 실행 ID는 및 LoadReportDefinition 메서드의 SOAP 헤더에 LoadReport 반환됩니다.

다음 다이어그램은 보고서의 처리 및 렌더링 경로를 보여줍니다.

보고서의 처리 및 렌더링 경로를 보여 주는 다이어그램

앞에서 설명한 함수를 지원하기 위해 현재 SOAP Render 메서드는 실행 초기화, 처리 및 렌더링 단계를 포함하는 여러 메서드로 분할됩니다.

보고서를 프로그래밍 방식으로 렌더링하려면 다음 작업을 수행해야 합니다.

보고서가 세션에 있는 동안 보고서 서버 데이터베이스에 저장된 기본 보고서가 변경될 수 있습니다. 예를 들어 보고서 정의가 변경될 수 있고, 보고서를 삭제하거나 이동할 수 있으며, 사용자 권한이 변경될 수 있습니다. 보고서가 활성 세션에 있는 경우 기본 보고서(즉, 보고서 서버 데이터베이스에 저장된 보고서)로 변경해도 영향을 주지 않습니다.

URL 액세스 명령을 사용하여 보고서 세션을 관리할 수도 있습니다.