传递扩展插件以 XML 配置文件的形式提供其配置信息。 XML 文件符合为传递扩展插件定义的 XML 架构。 传递扩展插件提供用于设置和修改配置文件的基础结构。
如果替换或升级传递扩展插件,则引用传递扩展插件的所有订阅都保持有效。
将 Reporting Services 传递扩展插件编写并编译为 Microsoft .NET Framework 库后,必须将该扩展复制到相应的目录,并将条目添加到相应的 Reporting Services 配置文件,以便报表服务器可以找到它。
Configuration-File Extension 元素
部署到报表服务器的传递扩展插件需要作为 Extension 配置文件中的元素输入。 报表服务器的配置文件 RSReportServer.config。
下表描述了传递扩展插件元素的属性 Extension 。
| 特征 | DESCRIPTION |
|---|---|
Name |
扩展插件的唯一名称(例如,电子邮件传递扩展插件的“报表服务器电子邮件”)或文件共享传递扩展插件的“报表服务器文件共享”。 属性的最大长度 Name 为 255 个字符。 该名称在配置文件元素中的所有 Extension 条目中必须是唯一的。 如果存在重复的名称,报表服务器将返回错误。 |
Type |
一个逗号分隔的列表,其中包含完全限定的命名空间以及程序集的名称。 |
Visible |
false指示传递扩展插件不应在用户界面中可见的值。 如果未包含该属性,则默认值为 true. |
有关 RSReportServer.config 文件的详细信息,请参阅 Reporting Services 配置文件。
将扩展部署到报表服务器
报表服务器使用传递扩展插件来处理和传递通知或报表。 应将传递扩展插件程序集作为专用程序集部署到报表服务器。 还需要在报表服务器配置文件中输入 RSReportServer.config。
将传递扩展程序集部署到报表服务器
将程序集从暂存位置复制到要使用的传递扩展插件的报表服务器的 bin 目录。 报表服务器 bin 目录的默认位置为 \%ProgramFiles%\Microsoft SQL Server\MSRS10_50。<InstanceName>\Reporting Services\ReportServer\bin。
重要
如果尝试覆盖现有传递扩展插件程序集,必须先停止报表服务器服务,然后再复制更新的程序集。 在程序集通过复制后重启服务。
复制程序集文件后,打开 RSReportServer.config 文件。 RSReportServer.config 文件位于 %ProgramFiles%\Microsoft SQL Server\MSRS10_50。<InstanceName>\Reporting Services\ReportServer 目录。 你需要在配置文件中为传递扩展插件程序集文件创建一个条目。 可以使用 Microsoft Visual Studio 或简单的文本编辑器(如记事本)打开配置文件。
在 RSReportServer.config 文件中找到
Delivery元素。 应在以下位置创建新创建的传递扩展插件的条目:<Extensions> <Delivery> <Your extension configuration information goes here> </Delivery> </Extensions>为传递扩展插件添加条目。 条目应包含一个
Extension具有其值的NameType元素,并且可能如下所示:<Extension Name="My Delivery Extension Name" Type="CompanyName.ExtensionName.MyDeliveryExtensionClass, AssemblyName" />Name该值是传递扩展插件的唯一名称。 值为Type逗号分隔的列表,其中包含实现 IDeliveryExtension 接口的类的完全限定命名空间的条目,后跟程序集的名称(不包括 .dll 文件扩展名)。 默认情况下,传递扩展插件可见。 若要从用户界面(如报表管理器)隐藏扩展,请将属性添加到VisibleExtension元素,并将其设置为false。最后,为自定义程序集添加代码组,以授予
FullTrust传递扩展插件的权限。 为此,将代码组添加到默认位于 %ProgramFiles%\Microsoft SQL Server\MSRS10_50 中的 rssrvpolicy.config 文件。<InstanceName>\Reporting Services\ReportServer。 代码组可能如下所示:<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="MyExtensionCodeGroup" Description="Code group for my delivery extension"> <IMembershipCondition class="UrlMembershipCondition" version="1" Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.<InstanceName>\Reporting Services\ReportServer\bin\MyExtensionAssembly.dll" /> </CodeGroup>URL 成员身份只是你为传递扩展插件选择的许多成员资格条件之一。 有关 SSRS 中的代码访问安全性的详细信息,请参阅。安全开发(Reporting Services)
将扩展部署到报表管理器
如果传递扩展插件实现 ISubscriptionBaseUIUserControl 接口,则传递扩展插件可与报表管理器订阅页一起使用。 若要使订阅用户界面可用,需要将扩展部署到报表管理器。
将传递扩展程序集部署到报表管理器
将程序集从暂存位置复制到报表管理器的 bin 目录。 报表管理器 bin 目录的默认位置为 \%ProgramFiles%\Microsoft SQL Server\MSRS10_50。<InstanceName>\Reporting Services\ReportManager\bin。
复制程序集文件后,打开 RSReportServer.config 文件。 RSReportServer.config 文件位于 %ProgramFiles%\Microsoft SQL Server\MSRS10_50。<InstanceName>\Reporting Services\ReportServer 目录。 你需要在配置文件中为传递扩展插件程序集文件创建一个条目。 可以使用 Visual Studio .NET 或简单的文本编辑器(如记事本)打开配置文件。
在 RSReportServer.config 文件中找到
DeliveryUI元素。 应在以下位置创建新创建的传递扩展插件的条目:<Extensions> <DeliveryUI> <Your extension configuration information goes here> </DeliveryUI> </Extensions>为传递扩展插件添加条目。 条目应包含一个
Extension元素,其中包含其值Name,Type并且可能如下所示:<Extension Name="My Delivery Extension Name" Type="CompanyName.ExtensionName.MyDeliveryUIExtensionClass, AssemblyName" />Name该值是传递扩展插件的唯一名称。 值为Type逗号分隔的列表,其中包含实现 ISubscriptionBaseUIUserControl 接口的类的完全限定命名空间的条目,后跟程序集的名称(不包括 .dll 文件扩展名)。重要
对于报表服务器和报表管理器配置文件条目,属性的值
Name必须相同。 如果它们不完全相同,则服务器配置无效。最后,为自定义程序集添加代码组,以授予
FullTrust传递扩展插件的权限。 为此,将代码组添加到默认位于 C:\Program Files\Microsoft SQL Server\MSRS10_50 中的 RSmgrpolicy.config 文件。<InstanceName>\Reporting Services\ReportManager。 代码组可能如下所示:<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="MyExtensionCodeGroup" Description="Code group for my delivery UI extension"> <IMembershipCondition class="UrlMembershipCondition" version="1" Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.<InstanceName>\Reporting Services\ReportManager\bin\MyExtensionAssembly.dll" /> </CodeGroup>URL 成员身份只是你为传递扩展插件选择的许多成员资格条件之一。 有关 SSRS 中的代码访问安全性的详细信息,请参阅 安全开发(Reporting Services)
验证部署
可以使用 Web 服务 ListExtensions 方法验证传递扩展插件是否已成功部署到报表服务器。 还可以打开报表管理器并验证扩展插件是否包含在订阅的可用传递扩展插件列表中。 有关报表管理器和订阅的详细信息,请参阅订阅和传递(Reporting Services)。