Развертывание пользовательской сборки
Чтобы развернуть пользовательскую сборку в СЛУЖБАх SQL Server Reporting Services, разместите сборку в папках приложений конструктор отчетов и сервера отчетов. По умолчанию пользовательские сборки предоставляются разрешения на выполнение в службах Reporting Services. Чтобы предоставить пользовательским сборкам привилегии за пределами разрешения execute, необходимо изменить файл конфигурации rssrvpolicy.config для сервера отчетов и файл конфигурации rspreviewpolicy.config для окна предварительного просмотра конструктор отчетов. Также можно установить пользовательскую сборку в глобальный кэш сборок.
Примечание.
Для конструктора отчетов предусмотрено два режима предварительного просмотра: вкладка предварительного просмотра и всплывающее окно предварительного просмотра, которое вызывается при запуске проекта отчета в режиме DebugLocal. На вкладке предварительного просмотра все выражения отчета выполняются с помощью набора разрешений FullTrust и не применяются параметры политики безопасности. Всплывающее окно предварительного просмотра предназначено для имитации функциональных возможностей сервера отчетов и поэтому имеет файл конфигурации политики, который необходимо изменить (возможно, при участии администратора), чтобы использовать пользовательские сборки в конструкторе отчетов. Это всплывающее окно предварительного просмотра также блокирует пользовательскую сборку. Поэтому для изменения или обновления кода пользовательской сборки необходимо закрыть окно предварительного просмотра.
Развертывание пользовательской сборки в службах Reporting Services
Скопируйте пользовательскую сборку из каталога построения в папку 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
Откройте соответствующий файл конфигурации. Расположение файла 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
Добавьте группу кода для пользовательской сборки. Дополнительные сведения см. в разделе Безопасная разработка (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>