打印机传递扩展插件示例

更新日期: 2005 年 12 月 5 日

打印机传递示例是一个传递扩展插件示例,它介绍了有关 Reporting Services 传递的情况。该示例是一个用于打印机的简单传递扩展插件。它使用 IMAGE 呈现扩展插件和 Microsoft .NET Framework 中的 System.Drawing.Printing 命名空间来将报表传递到打印机。基于 Itanium 的操作系统不支持此示例。

在安装期间不会自动安装 SQL Server 示例。有关如何安装示例的说明,请参阅安装示例

ms160778.note(zh-cn,SQL.90).gif重要提示:
提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。未经系统管理员许可,不能将示例应用程序和程序集与生产 SQL Server 数据库或报表服务器相连接或一起使用。

要求

您应该熟悉 Visual Studio 和 Microsoft Visual C#,并且您的系统必须满足以下要求,才能使用打印机传递示例:

  • Microsoft Visual Studio 2005。
  • Microsoft .NET Framework 2.0 版。
  • Reporting Services 示例。
  • 如果您计划使用示例扩展插件来将其他数据处理功能添加到服务器,还需要安装一个报表服务器,您应具通过网络访问该报表服务器的权限。

位置

此示例位于 Reporting Services 示例目录的 Extension Samples\PrinterDelivery Sample 子目录中。

例如:

C:\Program Files\Microsoft SQL Server\90\Samples\Reporting Services\Extension Samples\PrinterDelivery Sample

生成示例

使用下列步骤生成示例。

如果尚未创建强名称密钥文件,则请使用以下说明生成该密钥文件。

生成强名称密钥文件

  1. 打开 Microsoft Visual Studio 2005 命令提示符。单击“开始”,依次指向“所有程序”、“Microsoft .NET Framework SDK 2.0”,然后单击“SDK 命令提示符”

    - 或 -

    打开 Microsoft .NET Framework 命令提示符。单击“开始”,依次指向“所有程序”、“Microsoft .NET Framework SDK 2.0”,然后单击“SDK 命令提示符”

  2. 使用更改目录命令 (CD) 将命令提示符窗口的当前目录更改至安装示例的文件夹。

    ms160778.note(zh-cn,SQL.90).gif注意:
    若要确定示例所在的文件夹,请单击“开始”按钮,依次指向“所有程序”、“Microsoft SQL Server”、“文档和教程”,然后单击“示例目录”。如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\100\Samples 中。
  3. 在命令提示符下,运行以下命令以生成密钥文件:

    sn -k SampleKey.snk

    ms160778.note(zh-cn,SQL.90).gif重要事项:
    有关强名称密钥对的详细信息,请参阅 MSDN 上 .NET 开发中心中的“安全简讯:.NET Framework 中的强名称和安全性”。

使用 .NET Framework SDK 编译示例

  1. 将 Microsoft.ReportingServices.Interfaces.dll 从报表服务器的 \bin 目录复制到示例文件夹下。默认情况下,Microsoft.ReportingServices.Interfaces.dll 位于安装 Reporting Services 实例的 \Reporting Services\ReportServer\bin 子目录中。确切路径可能与 Reporting Services 的安装路径不同。例如:

    C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager\Bin
    
  2. 发出以下命令,以创建传递扩展插件示例 Microsoft.Samples.ReportingServices.PrinterDeliverySample.dll。

    csc /t:library /out:Microsoft.Samples.ReportingServices.PrinterDeliverySample.dll *.cs /r:Microsoft.ReportingServices.Interfaces.dll
    

使用 Visual Studio 编译示例

  1. 在 Visual Studio 中打开示例解决方案文件(PrinterDeliveryCS.sln 或 PrinterDeliveryVB.sln)。

  2. 在解决方案资源管理器中,选择 PrinterDelivery 项目。

  3. 在**“项目”菜单上,单击“添加引用”**。

    此时,将打开**“添加引用”**对话框。

  4. 单击 .NET 选项卡。

  5. 单击**“浏览”,在本地驱动器上查找 Microsoft.ReportingServices.Interfaces.dll 文件。默认情况下,该程序集位于 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin 目录下,然后单击“确定”**。

    所选引用将添加到项目中。

  6. 在**“生成”菜单上,单击“生成解决方案”**。

部署示例

执行完上述步骤后,Microsoft.Samples.ReportingServices.PrinterDeliverySample.dll 将被部署到报表服务器和报表管理器上,供在传递报表时使用。

部署示例

  1. 将 Microsoft.Samples.ReportingServices.PrinterDeliverySample.dll 复制到报表服务器上。报表服务器扩展插件的默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin。

  2. 在 RSReportServer.config 文件的 <Delivery> 元素下,输入以下内容。

    <Extension Name="Printer Delivery Sample" Type="Microsoft.Samples.ReportingServices.PrinterDelivery.PrinterDeliveryProvider,Microsoft.Samples.ReportingServices.PrinterDeliverySample">
       <Configuration>
          <Printers>
             <Printer>\\Server\MyNetworkPrinter1</Printer>
             <Printer>\\Server\MyNetworkPrinter2</Printer>
             <Printer>MyLocalPrinter</Printer>
          </Printers>
       </Configuration>
    </Extension>
    
    ms160778.note(zh-cn,SQL.90).gif注意:
    <Printers> 元素用于启用一个固定的打印机名称集,供传递扩展插件 Printer 设置使用。最终,将根据一个已知可用打印机列表来核对该列表,而传递扩展插件将被安装到此已知可用打印机列表所在的报表服务器上。如果所选打印机与报表服务器上已知安装的打印机列表不匹配,传递将失败,其状态为“服务器上当前未安装打印机 {0}”。如果报表服务器使用的 Windows 服务帐户没有向安装在 Windows 中的打印机进行打印的权限,则打印机将不包含在可用打印机列表中
  3. 将程序集复制到报表管理器。报表管理器扩展插件的默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager\bin。

  4. 在 RSWebApplication.config 文件的 <DeliveryUI> 元素下,输入以下内容:

    <Extension Name="Printer Delivery Sample" Type="Microsoft.Samples.ReportingServices.PrinterDelivery.PrinterDeliveryUIProvider,Microsoft.Samples.ReportingServices.PrinterDeliverySample"/>
    

有关部署传递扩展插件的详细信息,请参阅Deploying a Delivery Extension

配置示例的代码访问安全性

  1. 打开报表服务器策略配置文件 (rssrvpolicy.config)。此文件的默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer。

  2. 必须为传递扩展插件授予完全信任。为此,请在 <CodeGroup ?Zone="MyComputer" /> 元素下添加以下代码组信息:

    <CodeGroup class="UnionCodeGroup"
       version="1"
       PermissionSetName="FullTrust"
       Name="PrinterDeliveryCodeGroup"
       Description="Code group for my delivery extension">
          <IMembershipCondition class="UrlMembershipCondition"
             version="1"
             Url="C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.PrinterDeliverySample.dll"
           />
    </CodeGroup>
    
  3. 如果是在报表管理器中使用打印机传递扩展插件示例,请使用报表管理器策略配置文件 (rsmgrpolicy.config) 和以下代码组重复第 1 步和第 2 步:

    <CodeGroup class="UnionCodeGroup"
       version="1"
       PermissionSetName="FullTrust"
       Name="PrinterDeliveryCodeGroup"
       Description="Code group for my delivery extension">
          <IMembershipCondition class="UrlMembershipCondition"
             version="1"
             Url="C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager\bin\Microsoft.Samples.ReportingServices.PrinterDeliverySample.dll"
           />
    </CodeGroup>
    

    rsmgrpolicy.config 文件的默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager。

  4. 完成部署示例后,请使用重置工具 Iisreset.exe 重置 Microsoft Internet 信息服务 (IIS),然后重新启动 Reporting Services Windows 服务。

    有关 .NET 安全性和 Reporting Services 的详细信息,请参阅Understanding Code Access Security in Reporting Services

请参阅

任务

编译和运行代码示例
SQL Server Reporting Services 示例

其他资源

在自定义应用程序中使用 RSClientPrint 控件
扩展插件示例 (Reporting Services)
Implementing a Delivery Extension

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2005 年 12 月 5 日

更改的内容:
  • 更改了有关生成密钥文件的说明,包括密钥文件的名称和位置。