Построение, развертывание и отладка пользовательских объектов

После написания кода пользовательского объекта для служб Integration Services необходимо построить сборку, развернуть ее, интегрировать ее в конструктор служб SSIS, чтобы сделать ее доступной для использования в пакетах, а затем протестировать и выполнить ее отладку.

Шаги построения, развертывания и отладки пользовательского объекта для служб Integration Services

Пользовательская функциональность для объекта уже написана. Теперь необходимо протестировать ее и сделать доступной для пользователей. Эти шаги похожи для всех типов пользовательских объектов, которые могут быть созданы для служб Integration Services.

Здесь приведены шаги построения, развертывания и отладки объекта:

  1. Подпишите сборку для формирования со строгим именем.

  2. Постройте сборку.

  3. Разверните сборку, переместив или скопировав ее в соответствующую папку служб Integration Services.

  4. Установите сборку в глобальный кэш сборок (GAC).

  5. Добавьте объект в область элементов, если объект является задачей или компонентом потока данных.

  6. Устраните неполадки в работе развернутой сборки, если необходимо.

  7. Протестируйте и выполните отладку кода.

Подписывание сборки

Если сборка предназначена для общего доступа, ее необходимо установить в глобальный кэш сборок. После добавления сборки в глобальный кэш сборок, ее можно использовать в приложениях, например, в среде Business Intelligence Development Studio. Глобальный кэш сборок предъявляет к добавляемой сборке особое требование: она должна быть подписана строгим именем, что гарантирует глобальную уникальность сборки. Сборка со строгим именем имеет полное имя, включающее имя, культуру, открытый ключ и номер версии сборки. Среда выполнения использует эти сведения, чтобы найти сборку и отличить ее от других сборок с тем же именем.

Чтобы подписать сборку строгим именем, необходимо иметь или создать пару открытого и закрытого ключей. Такая пара открытого и закрытого криптографических ключей используется во время построения для создания сборки со строгим именем.

Дополнительные сведения о строгих именах и шагах подписывания сборки см. в следующих разделах документации к пакету SDK платформы .NET Framework:

  • Сборки со строгими именами

  • Создание пары ключей

  • Подписывание сборки строгим именем

Можно легко подписать сборку строгим именем в среде Visual Studio во время построения. В диалоговом окне Свойства проекта перейдите на вкладку Подписывание. Выберите параметр Подписать сборку и укажите путь к файлу ключа (SNK).

Построение сборки

После подписывания проекта необходимо построить или перестроить проект или решение с использованием команд, доступных в меню Построение среды BI Development Studio. Решение может содержать отдельный проект для пользовательского интерфейса, который также должен быть подписан строгим именем и может строиться одновременно со сборкой.

Наиболее удобным способом выполнения следующих двух шагов – развертывания сборки и установки ее в глобальный кэш сборок – является создание сценария для этих шагов, запускаемого после построения в Visual Studio. События построения доступны на странице Компиляция свойств проекта для проекта Visual Basic и на странице События построения для проекта C#. Полный путь необходимо указывать в программах командной строки, например, gacutil.exe. Пути, содержащие пробелы, и макросы, например, $(TargetPath), которые разворачиваются в пути, содержащие пробелы, необходимо заключать в кавычки.

Ниже приведен образец командной строки события после построения для пользовательского регистратора.

"C:\Program Files\Microsoft Visual Studio 9.0\SDK\v3.5\Bin\gacutil.exe" -u $(TargetName)
"C:\Program Files\Microsoft Visual Studio 9.0\SDK\v3.5\Bin\gacutil.exe" -i $(TargetFileName)
copy $(TargetFileName) "C:\Program Files\Microsoft SQL Server\100\DTS\LogProviders "

Развертывание сборки

Конструктор служб SSIS определяет местоположение пользовательских объектов, доступных для использования в пакетах, путем перечисления файлов, обнаруженных в наборах папок, которые были созданы при установке служб SQL Server Integration Services. При использовании настроек установки SQL Server по умолчанию этот набор папок расположен по адресу C:\Program Files\Microsoft SQL Server\100\DTS. Однако если для пользовательского объекта была создана программа установки, следует проверить значение в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\Setup\DtsPath, чтобы убедиться в правильности указанного местоположения этой папки.

Можно поместить сборку в папку двумя способами.

  • Переместить или скопировать скомпилированную сборку в соответствующую папку после ее построения. (Для удобства можно включить команду копирования в событие после построения.)

  • Построить сборку непосредственно в нужной папке.

Следующие папки развертывания по адресу C:\Program Files\Microsoft SQL Server\100\DTS используются для различных типов пользовательских объектов:

Пользовательский объект

Папка развертывания

Задача

Tasks

Диспетчер соединений

Connections

Регистратор

LogProviders

Компонент потока данных

PipelineComponents

ПримечаниеПримечание

Сборки копируются в эти папки для поддержки перечисления доступных задач, диспетчеров соединений и т. д. Поэтому нет необходимости развертывать сборки, содержащие только пользовательский интерфейс для пользовательских объектов, в этих папках.

Установка сборки в глобальный кэш сборок

Чтобы установить сборку задачи в глобальный кэш сборок (GAC), используйте программу командной строки gacutil.exe или перетащите сборки в каталог %system%\assembly. Для удобства можно включить вызов программы gacutil.exe в событие после построения.

Следующая команда устанавливает компонент с именем MyTask.dll в глобальный кэш сборок (GAC) с помощью программы gacutil.exe.

gacutil /iF MyTask.dll

После установки новой версии пользовательского объекта необходимо закрыть и заново открыть конструктор служб SSIS. Если устаревшие версии пользовательского объекта были ранее установлены в глобальный кэш сборок, необходимо удалить их перед установкой новой версии. Чтобы удалить сборку, запустите программу gacutil.exe и укажите имя сборки с параметром /u.

Дополнительные сведения о глобальном кэше сборок см. в разделе «Программа глобального кэша сборок (Gactutil.exe)» в документации по средствам платформы .NET Framework.

Добавление задачи или компонента потока данных в область элементов

После развертывания пользовательского объекта и его установки в глобальный кэш сборок, его можно использовать в среде Business Intelligence Development Studio, как и любой другой объект, поставляемый со службами SQL Server Integration Services. Однако для этого его необходимо явным образом добавить в Область элементов.

Добавление пользовательского компонента в область элементов

  1. Щелкните правой кнопкой мыши область элементов и выберите пункт Выбрать элементы;

  2. В диалоговом окне Выбор элементов области элементов перейдите на вкладку Элементы потока управления служб SSIS для задачи или на вкладку Элементы потока данных служб SSIS для компонента потока данных.

  3. Установите флажок рядом с необходимым компонентом и нажмите кнопку ОК.

ПримечаниеПримечание

Если необходимый компонент отсутствует в списке, нажмите кнопку Обзор и найдите его самостоятельно. Однако в этом случае возможна неправильная установка компонента.

Устранение неполадок в развертывании

Если пользовательский объект отображается в Области элементов или в списке доступных объектов, но его не удается добавить в пакет, попробуйте выполнить следующие действия.

  1. Выполните поиск в глобальном кэше сборок на предмет наличия в нем нескольких версий компонента. При наличии нескольких версий компонента в глобальном кэше сборок конструктор не может загрузить компонент. Удалите все экземпляры сборки из глобального кэша сборок и добавьте сборку заново.

  2. Убедитесь в том, что только один экземпляр сборки существует в папке развертывания.

  3. Выполните сброс области элементов.

  4. Подключитесь в среде Visual Studio к файлу devenv.exe и установите точку останова, чтобы выполнить в пошаговом режиме код инициализации и убедиться в отсутствии исключений.

Тестирование и отладка кода

Самым простым подходом к отладке методов времени выполнения пользовательского объекта является запуск dtexec.exe из среды Visual Studio после построения пользовательского объекта и выполнение пакета, использующего этот компонент.

Если необходимо выполнить отладку методов времени разработки компонента, например, метода Validate, откройте пакет, в котором используется компонент, во втором экземпляре среды Visual Studio и подключитесь к процессу devenv.exe.

Если необходимо также выполнить отладку методов времени выполнения компонента, когда пакет открыт и выполняется в конструкторе служб SSIS, необходимо принудительно приостановить выполнение пакета, чтобы можно было также подключиться к процессу DtsDebugHost.exe.

Отладка методов времени выполнения объекта путем подключения к dtexec.exe

  1. Подпишите и постройте проект в конфигурации отладки, выполните развертывание и установку в глобальный кэш сборок, как описано в этом разделе.

  2. На вкладке Отладка страницы Свойства проекта выберите Запуск внешней программы в качестве значения для Начального действия и укажите путь к файлу dtexec.exe, который по умолчанию устанавливается в папку C:\Program Files\Microsoft SQL Server\100\DTS\Binn.

  3. В текстовом поле Параметры командной строки в разделе Параметры запуска введите аргументы командной строки, необходимые для выполнения пакета, использующего пользовательский компонент. Часто аргумент командной строки содержит параметр /F[ILE], за которым следуют путь и имя DTSX-файла. Дополнительные сведения см. в разделе Программа dtexec (средства служб SSIS).

  4. В исходном коде, где это необходимо, задайте точки останова в методах времени выполнения компонента.

  5. Выполните проект.

Отладка методов времени разработки пользовательского объекта путем подсоединения к среде Business Intelligence Development Studio

  1. Подпишите и постройте проект в конфигурации отладки, выполните развертывание и установку в глобальный кэш сборок, как описано в этом разделе.

  2. В исходном коде, где это необходимо, задайте точки останова в методах времени разработки пользовательского объекта.

  3. Откройте второй экземпляр среды Visual Studio и загрузите проект служб Integration Services, содержащий пакет, в котором используется пользовательский объект.

  4. В первом экземпляре среды Visual Studio подключитесь ко второму экземпляру devenv.exe, в котором загружен пакет, выбрав команду Присоединить для обработки в меню Отладка первого экземпляра.

  5. Выполните пакет из второго экземпляра среды Visual Studio.

Отладка методов времени выполнения пользовательского объекта путем подсоединения к среде Business Intelligence Development Studio

  1. После выполнения шагов, описанных в предыдущей процедуре, принудительно приостановите выполнение пакета, чтобы его можно было присоединить к DtsDebugHost.exe. Принудительно приостановить выполнение можно путем добавления точки останова в событие OnPreExecute либо добавления задачи «Сценарий» в проект и ввода сценария, отображающего модальное окно сообщения.

  2. Запустите пакет. Во время паузы переключитесь в экземпляр среды Visual Studio, где открыт проект кода, и выберите команду Присоединить для обработки в меню Отладка. Подсоединяться следует к экземпляру DtsDebugHost.exe, содержащемуся в списке Управляемые, x86 в столбце Тип, а не к экземпляру из списка x86.

  3. Вернитесь к приостановленному пакету и продолжите выполнение после точки останова, либо нажмите кнопку ОК, чтобы закрыть окно сообщения, выданного задачей «Сценарий», и продолжить выполнение и отладку пакета.

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.