FAQ - rdl报表使用自定义程序集

使用VS开发本地报表时

  1. 对托管的程序集进行强签名(在项目-属性-签名中设置即可)
  2. 将所使用的自定义程序集安装至运行报表的GAC中(gacutil /i AssemblyName.dll
  3. 如果运行提示错误信息“该程序集不支持部分受信任的调用方”,则在自定义程序集项目的AssemblyInfo.cs文件中添加:[assembly: AllowPartiallyTrustedCallers]

使用ReportBuilder开发服务端报表时

  1. 复制所使用的自定义程序集至目录:C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin,默认数据库安装为此目录,如果有修改请以实际目录为准
  2. 因为ReportServer对于表达式默认执行权限是Execution,需要修改为FullTrust,在文件C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\rssrvpolicy.config中查找文本Name="Report_Expressions_Default_Permissions",将其上一行内容修改为:PermissionSetName="FullTrust"
  3. 同时,还需要在文件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>