사용자 지정 어셈블리 배포

SQL Server Reporting Services에서 사용자 지정 어셈블리를 배포하려면 어셈블리를 보고서 디자이너 및 보고서 서버의 애플리케이션 폴더에 배치합니다. 기본적으로 사용자 지정 어셈블리에는 Reporting Services에서 실행 권한이 부여됩니다. 실행 권한 이외의 사용자 지정 어셈블리 권한을 부여하려면 보고서 서버의 rssrvpolicy.config 구성 파일과 보고서 디자이너 미리 보기 창의 rspreviewpolicy.config 구성 파일을 편집해야 합니다. 또는 GAC(전역 어셈블리 캐시)에 사용자 지정 어셈블리를 설치할 수도 있습니다.

참고 항목

보고서 디자이너 미리 보기 모드에는 보고서 프로젝트가 DebugLocal 모드에서 시작될 때 시작되는 미리 보기 탭과 팝업 미리 보기 창의 두 가지가 있습니다. 미리 보기 탭에서는 FullTrust 권한 집합을 사용하여 모든 보고서 식을 실행하며 보안 정책 설정을 적용하지 않습니다. 팝업 미리 보기 창은 보고서 서버 기능을 시뮬레이션하기 위한 것이므로 사용자 또는 관리자가 보고서 디자이너 사용자 지정 어셈블리를 사용하도록 수정해야 하는 정책 구성 파일이 있습니다. 이 팝업 미리 보기는 사용자 지정 어셈블리도 잠급 수 있습니다. 따라서 사용자 지정 어셈블리 코드를 수정하거나 업데이트하려면 미리 보기 창을 닫아야 합니다.

Reporting Services에서 사용자 지정 어셈블리 배포

  1. 빌드 위치에서 보고서 서버 bin 폴더 또는 보고서 디자이너 폴더로 사용자 지정 어셈블리를 복사합니다.

    사용자 지정 어셈블리를 보고서 서버 bin 폴더에 배치하면 사용자 지정 어셈블리를 참조하는 보고서를 게시할 수 있습니다. 보고서 서버에 대한 bin 폴더의 기본 위치는 다음과 같습니다.

    Reporting Services 2016

    %ProgramFiles%\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin
    

    Reporting Services 2017 이상

    %ProgramFiles%\Microsoft SQL Server Reporting Services\SSRS\ReportServer\bin
    

    사용자 지정 어셈블리를 보고서 디자이너 폴더에 저장하면 보고서 디자이너에 있는 이 사용자 지정 어셈블리를 참조하는 보고서를 실행 및 디버깅할 수 있습니다. 보고서 디자이너 기본 위치는 다음과 같습니다.

    Visual Studio 2012

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies
    

    Visual Studio 2013

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies
    

    Visual Studio 2015

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies
    

    Visual Studio 2017

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS
    

    Visual Studio 2019

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS
    
  2. 적절한 구성 파일을 엽니다. 보고서 서버에 대한 rssrvpolicy.config의 기본 위치는 다음과 같습니다.

    Reporting Services 2016

    %ProgramFiles%\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer
    

    Reporting Services 2017 이상

    %ProgramFiles%\Microsoft SQL Server Reporting Services\SSRS\ReportServer
    

    보고서 디자이너 업데이트할 파일은 다음과 같습니다.

    Visual Studio 2012

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\RSReportHost11.exe.config
    

    Visual Studio 2013

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\RSReportHost.exe.config
    

    Visual Studio 2015

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\RSReportHost.exe.config
    

    Visual Studio 2017

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportHost.exe.config
    

    Visual Studio 2019

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportHost.exe.config
    
  3. 사용자 지정 어셈블리에 대한 코드 그룹을 추가합니다. 자세한 내용은 보안 개발(Reporting Services)을 참조하세요.

사용자 지정 어셈블리 업데이트

어떤 시점에서는 게시된 여러 보고서에서 참조하는 사용자 지정 어셈블리의 버전을 업데이트해야 할 수도 있습니다. 해당 어셈블리가 보고서 서버 또는 보고서 디자이너 bin 디렉터리에 이미 있고 어셈블리의 버전 번호가 어떤 식으로든 증가하거나 변경되면 현재 게시된 보고서가 제대로 작동하지 않습니다. 보고서 정의의 CodeModules 요소에서 참조되는 어셈블리의 버전을 업데이트하고 보고서를 다시 게시해야 합니다. 사용자 지정 어셈블리를 자주 업데이트하고 현재 게시된 보고서에서 새 어셈블리를 참조해야 하는 경우 특정 어셈블리의 모든 업데이트에서 동일한 버전 번호를 사용하는 것이 좋습니다.

현재 게시된 보고서가 새 버전의 어셈블리를 참조할 필요가 없는 경우 사용자 지정 어셈블리를 전역 어셈블리 캐시에 배포할 수 있습니다. 전역 어셈블리 캐시는 동일한 어셈블리의 여러 버전을 기본 수 있으므로 현재 보고서는 이전 버전의 어셈블리를 참조할 수 있고 새로 게시된 보고서는 업데이트된 어셈블리를 참조할 수 있습니다. 그러나 또 다른 방법은 이전 어셈블리에 대한 모든 요청을 새 어셈블리로 강제로 리디렉션하도록 보고서 서버의 바인딩 리디렉션을 설정하는 것입니다. 보고서 서버 Web.config 파일 및 보고서 서버 ReportingServicesService.exe.config 파일을 수정해야 합니다. 항목은 다음 예제와 같을 수 있습니다.

<configuration>  
   <runtime>  
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
         <dependentAssembly>  
            <assemblyIdentity name="myAssembly"  
                              publicKeyToken="32ab4ba45e0a69a1"  
                              culture="neutral" />  
            <bindingRedirect oldVersion="1.0.0.0"  
                             newVersion="2.0.0.0"/>  
         </dependentAssembly>  
      </assemblyBinding>  
   </runtime>  
</configuration>  

보고서에서 사용자 지정 어셈블리 사용
어셈블리 및 전역 어셈블리 캐시 사용