カスタム アセンブリの配置

カスタム アセンブリを SQL ServerReporting Services に配置するには、レポート デザイナーとレポート サーバーの両方のアプリケーション フォルダーにアセンブリを入れます。 既定では、カスタム アセンブリには Reporting Services の Execution アクセス許可が付与されます。 Execute 権限を超えるカスタム アセンブリ権限を付与するには、レポート サーバーの rssrvpolicy.config 構成ファイルと、レポート デザイナー プレビュー ウィンドウの rspreviewpolicy.config 構成ファイルを編集する必要があります。 または、グローバル アセンブリ キャッシュ (GAC) にカスタム アセンブリをインストールできます。

Note

レポート デザイナーには 2 種類のプレビュー モードがあります。1 つは [プレビュー] タブ、もう 1 つは、レポート プロジェクトを 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>