2013-03-20 1 views
0

저는 ReportExecutionService 개체를 사용하여 Render 메서드를 사용하여보고 서비스 보고서를 호출합니다. Windows 서비스 호출에서 웹 서비스를 여러 번 호출하고 여러 매개 변수가있는 여러 보고서를로드하고 있습니다.여러 웹 서비스 호출에서 SessionID를 다시 사용합니다.

모든 것이 잘 작동,하지만 난 알고 싶어 :

  1. rs.ExecutionHeaderValue.ExecutionID 속성에서 얻은 세션 ID를 재사용하여 프로세스 성능을 향상 할 수있는 방법이 있나요?
  2. 첫 번째 질문에 대한 대답이 "예"인 경우 : 통화에서 SessionId를 어떻게 다시 사용합니까? 내가 여러 플랫폼과 환경에 걸쳐 SSRS 서버와 내 싸움에서 발견 한 내용을

답변

0

재미있는 질문 난 당신의 두 점을 제공 할 것입니다은 :

  1. SSRS와 속도에 가장 큰 문제는에 보인다 12 시간마다 스스로를 재활용하는 서비스 자체에서 오는 것이므로 2008 년과 2012 년을 믿습니다. 내가 한 일은 http : // (servername)/ReportServer의 루트로 이동하여이를 유지하기 위해 핑 (ping)하는 '살아있는'서비스 호출을 만드는 것입니다. 그 시간 동안 활동하지 않으면 느려지는 경향이 있습니다.

  2. 당신이 모험을하고 있고 .NET을 알고 있다면 여러 번 보고서 나 보고서를 생성 할 수 있는지 알 수 있습니다. 기본적으로 C#을 사용하는 프로세스에서 코드에서 SSRS의 웹 서비스를 직접 호출합니다 (이 작업을 수행 할 프록시 클래스를 만듭니다). 그러면 서비스, 매개 변수까지 보고서를로드 한 다음 렌더링합니다. 여러 번로드 할 인스턴스를 주입 할 수 있습니다. 필자는 한번도 시도한 적이 없지만 프록시에서 직접 보고서를 렌더링하는 것은 거의 시도하지 않은 경우 놀라 울 정도로 빠릅니다.

이 방법에 세션 ID가 있지만 세션이 보고서 렌더링 또는 서버 호출에 보관되어 있는지 확실하지 않습니다. 나는 보고서를 렌더링하는 것으로 추측 하겠지만, 일반적으로 한 번에 하나씩 창조물에 대한 내 방법을 호출하고 내 사양에 대해 충분히 빠르지 만 이것을 테스트 한 적이 없습니다.

관심있는 사용자는 # 2에 대한 링크입니다. Programmatically Export SSRS report from sharepoint using ReportService2010.asmx

관련 문제