Поделиться через


Образец Printer Delivery Extension

Изменения: 5 декабря 2005 г.

Образец Printer Delivery является образцом модуля доставки, на примере которого рассматривается доставка в службах Reporting Services. Образец представляет собой простой модуль доставки на принтер. Он производит подготовку отчетов в формате IMAGE с использованием пространства имен System.Drawing.Printing в среде Microsoft .NET Framework. Этот образец не поддерживается в операционных системах на платформе Itanium.

При установке SQL Server образцы автоматически не устанавливаются. Указания по установке образцов см. в разделе Установка образцов.

ms160778.note(ru-ru,SQL.90).gifВажно!
Образцы предназначены только для обучения. Они не предназначены для использования в производственной среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих образцов. Образцы приложений и сборок не должны подключаться к рабочей базе данных SQL Server или серверу отчетов, а также использоваться с ними без разрешения системного администратора.

Требования

Для работы с образцом «Printer Delivery» необходимо уметь работать в среде Visual Studio на языке Microsoft Visual C#. Кроме того, в системе должны быть установлены перечисленные ниже компоненты.

  • Microsoft Visual Studio 2005.
  • Платформа Microsoft .NET Framework версии 2.0.
  • Образцы служб Reporting Services.
  • Сервер отчетов, на доступ к которому имеется разрешение (если планируется использование образца расширения для добавления возможностей по обработке данных на сервере).

Расположение

Данный образец находится во вложенном каталоге Extension Samples\PrinterDelivery Sample каталога образцов служб Reporting Services.

Например:

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

Построение образца

Чтобы построить образец, выполните следующие действия.

Если файл ключа для строгого имени еще не создавался, создайте его следующим образом.

To generate a strong name key file

  1. Откройте командную строку Microsoft Visual Studio 2005. Нажмите кнопку Пуск, укажите пункты Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.

    -- или --

    Откройте командную строку Microsoft .NET Framework. Нажмите кнопку Пуск, укажите пункты Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.

  2. Используйте команду CD, чтобы сменить текущий каталог командной строки и перейти в каталог, в котором установлены образцы.

    ms160778.note(ru-ru,SQL.90).gifПримечание.
    Чтобы определить каталог, в котором установлены образцы, нажмите кнопку Пуск, укажите пункты Все программы, Microsoft SQL Server, Документация и учебные материалы, а затем выберите пункт Каталог образцов. Если использовался каталог установки по умолчанию, то образцы расположены в каталоге «<системный_диск>:\Program Files\Microsoft SQL Server\100\Samples».
  3. В командной строке выполните следующую команду, чтобы создать файл ключа:

    sn -k SampleKey.snk

    ms160778.note(ru-ru,SQL.90).gifВажно!
    Дополнительные сведения о паре ключей для строгого имени см. в статье по строгим именам и безопасности для платформы .NET Framework в центре разработчиков .NET в MSDN.

Компиляция образца с помощью пакета .NET Framework SDK

  1. Скопируйте файл Microsoft.ReportingServices.Interfaces.dll из каталога \bin сервера отчетов в папку образца. По умолчанию файл Microsoft.ReportingServices.Interfaces.dll находится во вложенном каталоге \Reporting Services\ReportServer\bin для установленных экземпляров служб Reporting Services. В вашей установке служб 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. Откройте файл решения образца (PrinterDeliveryCS.sln или PrinterDeliveryVB.sln) в Visual Studio.

  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(ru-ru,SQL.90).gifПримечание.
    Элемент <Printers> обеспечивает доступ к фиксированному набору имен принтеров для настройки модуля доставки Принтер. Окончательная сверка этого списка с известным списком доступных принтеров на сервере отчетов, на котором установлен модуль доставки, произведена. Если выбранный принтер не указан в известном списке установленных на сервере отчетов принтеров, выдается ошибка доставки с состоянием: «Принтер {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. При использовании в диспетчере отчетов образца модуля доставки на принтер необходимо повторить шаги 1 и 2 с применением файла конфигурации политики для диспетчера отчетов (rsmgrpolicy.config) и следующей группы кодов:

    <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. Закончив развертывание образца, необходимо перезагрузить службы Microsoft Internet Information Services (IIS) при помощи средства перезагрузки Iisreset.exe, а затем перезапустить службу Windows для служб Reporting Services.

    Дополнительные сведения по безопасности платформы .NET и служб Reporting Services см. в разделе Understanding Code Access Security in Reporting Services.

См. также

Задачи

Компиляция и запуск примеров кода
Образцы служб SQL Server Reporting Services

Другие ресурсы

Использование элемента управления RSClientPrint в пользовательских приложениях
Образцы Extension (службы Reporting Services)
Implementing a Delivery Extension

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

5 декабря 2005 г.

Измененное содержимое
  • Изменены инструкции по созданию файла ключа, в том числе его имя и расположение.