Недавно выполняли миграцию СУБД с MSSQL 2016 на 2019, для SCCM. В ходе миграции одним из шагов является обновление SQL Server Reporting Services, который, как известно, используется точкой отчётов SCCM.
Всё прошло нормально, основные шаги описаны в статье. Но при запуске некоторых отчётов начала возникать ошибка
System.Web.Services.Protocols.SoapException: Failed to load expression host assembly. Details: Не удалось загрузить файл или сборку «SrsResources, Culture=neutral» либо одну из их зависимостей. Не удается найти указанный файл.
Причина в том, что почему-то при переустановке точки отчётов не копировалась библиотека, находящаяся по пути C:\Program Files\SMS_SRSRP\SrsResources.dll в папку C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\bin\
После ручного копирования библиотеки ошибка изменилась. Новый текст ошибки был таким:
System.Web.Services.Protocols.SoapException: The DefaultValue expression for the report parameter ‘UserTokenSIDs’ contains an error: Данная сборка запрещает вызывающие стороны с частичным доверием.
Для её исправления необходимо было внести изменение в файл C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\rssrvpolicy.config. Ближе к концу файла нужно добавить следующее:
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="SRSResources"><IMembershipCondition class="UrlMembershipCondition" version="1" Url="C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\bin\SrsResources.dll" />
</CodeGroup>
После внесения соответствующих изменений и перезагрузки службы SSRS всё начало работать корректно.
