如何向报表服务器部署数据处理扩展插件

报表服务器使用数据处理扩展插件来检索和处理所呈现报表中的数据。您应将数据处理扩展插件程序集作为私有程序集部署到报表服务器。还需要在报表服务器配置文件 RSReportServer.config 中生成一个条目。

过程

部署数据处理扩展插件程序集

  1. 将程序集从临时位置复制到您要在其上使用数据处理扩展插件的报表服务器的 bin 目录中。报表服务器 bin 目录的默认位置为 %ProgramFiles%\Microsoft SQL Server\MSRS10_50.<实例名>\Reporting Services\ReportServer\bin。

    注意注意

    此步骤会妨碍升级到较新的 SQL Server 实例。有关详细信息,请参阅升级 Reporting Services 的注意事项

  2. 在复制程序集文件后,打开 RSReportServer.config 文件。RSReportServer.config 文件位于 ReportServer 目录中。还需要在配置文件中为数据处理扩展插件程序集文件生成一个条目。您可以使用 Visual Studio 或诸如记事本之类的简单文本编辑器打开此配置文件。

  3. 在 RSReportServer.config 文件中找到 Data 元素。应当在以下位置为新创建的数据处理扩展插件生成一个条目:

    <Extensions>
       <Data>
          <Your extension configuration information goes here>
       </Data>
    </Extensions>
    
  4. 为数据处理扩展插件添加一个条目。条目应包括具有 Name 和 Type 的值的 Extension 元素,可能类似如下所示:

    <Extension Name="ExtensionName" Type="CompanyName.ExtensionName.MyConnectionClass, MyExtensionAssembly" />
    

    Name 的值为数据处理扩展插件的唯一名称。Type 的值是以逗号分隔的列表,包括实现 IExtensionIDbConnection 接口的类的完全限定命名空间的条目,后跟程序集的名称(不包括 .dll 文件扩展名)。默认情况下,数据处理扩展插件是可见的。若要在用户界面(如报表管理器)中隐藏扩展插件,请将 Visible 属性添加到 Extension 元素,并将其设置为 false。

  5. 为自定义程序集添加一个用于向扩展插件授予 FullTrust 权限的代码组。为此,需要将代码组添加到 rssrvpolicy.config 文件,该文件默认位于 %ProgramFiles%\Microsoft SQL Server\<MSRS10_50.<实例名>\Reporting Services\ReportServer 中。代码组可能如下所示:

    <CodeGroup class="UnionCodeGroup"
       version="1"
       PermissionSetName="FullTrust"
       Name="MyExtensionCodeGroup"
       Description="Code group for my data processing extension">
          <IMembershipCondition class="UrlMembershipCondition"
             version="1"
             Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.<Instance Name>\Reporting Services\ReportServer\bin\MyExtensionAssembly.dll"
           />
    </CodeGroup>
    

URL 成员身份只是您可以为数据处理扩展插件选择的多个成员条件之一。有关 Microsoft SQL Server 2008 R2 Reporting Services 中的代码访问安全性的详细信息,请参阅安全开发 (Reporting Services)

验证部署

您可以使用 Web 服务 ListExtensions 方法来验证是否已将数据处理扩展插件成功部署到报表服务器中。您也可以打开报表管理器,验证扩展插件是否包括在可用数据源列表中。有关报表管理器和数据源的详细信息,请参阅创建、修改和删除共享数据源 (SSRS)