使用VS开发本地报表时
- 对托管的程序集进行强签名(在项目-属性-签名中设置即可)
- 将所使用的自定义程序集安装至运行报表的GAC中(
gacutil /i AssemblyName.dll
) - 如果运行提示错误信息“该程序集不支持部分受信任的调用方”,则在自定义程序集项目的AssemblyInfo.cs文件中添加:
[assembly: AllowPartiallyTrustedCallers]
使用ReportBuilder开发服务端报表时
- 复制所使用的自定义程序集至目录:
C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin
,默认数据库安装为此目录,如果有修改请以实际目录为准 - 因为ReportServer对于表达式默认执行权限是
Execution
,需要修改为FullTrust
,在文件C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\rssrvpolicy.config
中查找文本Name="Report_Expressions_Default_Permissions"
,将其上一行内容修改为:PermissionSetName="FullTrust"
- 同时,还需要在文件
rssrvpolicy.config
末尾倒数第二个</CodeGroup>
前增加一段引用自定义程序集的标识,具体如下:1
2
3<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Description="This special code group grants AssemblyName.dll FUllTrust permission. ">
<IMembershipCondition class="UrlMembershipCondition" version="1" Url="C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin\AssemblyName.dll" />
</CodeGroup>