SOAP를 사용하여 Reporting Services 통합 - 웹 애플리케이션

Reporting Services SOAP API를 통해 보고서 서버의 전체 기능에 액세스할 수 있습니다. 웹 서비스이므로 SOAP API에 쉽게 액세스하여 사용자 지정 비즈니스 애플리케이션에 엔터프라이즈 보고 기능을 제공할 수 있습니다. Microsoft Windows 애플리케이션에서 SOAP API에 액세스하는 것과 거의 동일한 방식으로 웹 애플리케이션에서 보고서 서버 웹 서비스에 액세스합니다. Microsoft .NET Framework를 사용하여 보고서 서버 웹 서비스의 속성과 메서드를 노출하는 프록시 클래스를 생성할 수 있습니다. 그런 다음 친숙한 인프라 및 도구를 사용하여 Reporting Services 기술에 대한 비즈니스 애플리케이션을 빌드할 수 있습니다.

Reporting Services 보고서 관리 기능은 웹 애플리케이션 또는 Windows 애플리케이션에서 쉽게 액세스할 수 있습니다. 웹 애플리케이션에서는 보고서 서버 데이터베이스에서 항목 추가 및 제거, 항목 보안 설정, 보고서 서버 데이터베이스 항목 수정, 일정 예약 및 배달 관리 등을 수행할 수 있습니다.

가장 사용

웹 애플리케이션을 구성하는 첫 번째 단계는 웹 서비스 클라이언트에서 가장을 사용하도록 설정하는 것입니다. 가장을 사용하면 ASP.NET 애플리케이션이 작동 중인 클라이언트의 ID를 사용하여 실행할 수 있습니다. ASP.NET MICROSOFT 인터넷 정보 서비스(IIS)를 사용하여 사용자를 인증하고 인증된 토큰을 ASP.NET 애플리케이션에 전달하거나 사용자를 인증할 수 없는 경우 인증되지 않은 토큰을 전달합니다. 두 경우 모두 ASP.NET 애플리케이션은 가장을 사용하는 경우 수신되는 토큰을 가장합니다. 다음과 같이 클라이언트 애플리케이션의 Web.config 파일을 수정하여 클라이언트에서 가장을 사용하도록 설정할 수 있습니다.

<!-- Web.config file. -->  
<identity impersonate="true"/>  

참고 항목

가장은 기본적으로 사용하지 않도록 설정됩니다.

ASP.NET 가장에 대한 자세한 내용은 Microsoft .NET Framework SDK 설명서를 참조하세요.

SOAP API를 사용하여 보고서 서버 관리

웹 애플리케이션을 사용하여 보고서 서버 및 콘텐츠를 관리할 수도 있습니다. Reporting Services에 포함된 보고서 관리자는 ASP.NET 및 Reporting Services SOAP API를 사용하여 빌드된 웹 애플리케이션의 예입니다. 사용자 지정 웹 애플리케이션에 보고서 관리자의 보고서 관리 기능을 추가할 수 있습니다. 예를 들어 보고서 서버 데이터베이스에서 사용 가능한 보고서 목록을 반환하고 사용자가 선택할 수 있도록 ASP.NET Listbox 컨트롤에 표시할 수 있습니다. 다음 코드는 보고서 서버 데이터베이스에 연결하고 보고서 서버 데이터베이스의 항목 목록을 반환합니다. 그런 다음 사용 가능한 보고서가 Listbox 컨트롤에 추가되어 각 보고서의 경로를 표시합니다.

웹 애플리케이션을 사용하여 보고서 서버 및 콘텐츠를 관리할 수도 있습니다. Reporting Services에 포함된 웹 포털은 일반적으로 Reporting Services를 사용하여 수행하는 대부분의 작업을 관리하는 웹 애플리케이션의 예입니다. 웹 포털의 보고서 관리 기능을 사용자 지정 웹 애플리케이션에 추가할 수 있습니다. 예를 들어 보고서 서버 데이터베이스에서 사용 가능한 보고서 목록을 반환하고 사용자가 선택할 수 있도록 ASP.NET Listbox 컨트롤에 표시할 수 있습니다. 다음 코드는 보고서 서버 데이터베이스에 연결하고 보고서 서버 데이터베이스의 항목 목록을 반환합니다. 그런 다음 사용 가능한 보고서가 Listbox 컨트롤에 추가되어 각 보고서의 경로를 표시합니다.

Private Sub Page_Load(sender As Object, e As System.EventArgs)  
   ' Create a Web service proxy object and set credentials  
   Dim rs As New ReportingService2005()  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
  
   ' Return a list of catalog items in the report server database  
   Dim items As CatalogItem() = rs.ListChildren("/", True)  
  
   ' For each report, display the path of the report in a Listbox  
   Dim ci As CatalogItem  
   For Each ci In  items  
      If ci.Type = ItemTypeEnum.Report Then  
         catalogListBox.Items.Add(ci.Path)  
      End If  
   Next ci  
End Sub ' Page_Load   
private void Page_Load(object sender, System.EventArgs e)  
{  
   // Create a Web service proxy object and set credentials  
   ReportingService2005 rs = new ReportingService2005();  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
  
   // Return a list of catalog items in the report server database  
   CatalogItem[] items = rs.ListChildren("/", true);  
  
   // For each report, display the path of the report in a Listbox  
   foreach(CatalogItem ci in items)  
   {  
      if (ci.Type == ItemTypeEnum.Report)  
         catalogListBox.Items.Add(ci.Path);  
   }  
}  

웹 서비스와 .NET Framework를 사용하여 애플리케이션 빌드
애플리케이션에 Reporting Services 통합
Windows 애플리케이션에서 SOAP API 사용