Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: среда выполнения интеграции SSIS SQL Server
в Фабрика данных Azure
После написания кода для пользовательского объекта служб Integration Services необходимо создать сборку, развернуть ее и интегрировать в конструктор служб SSIS, чтобы сделать его доступным для использования в пакетах, а также протестировать и выполнить отладку.
Действия по созданию, развертыванию и отладке пользовательского объекта для служб Integration Services
Пользовательская функциональность для объекта уже написана. Теперь необходимо протестировать ее и сделать доступной для пользователей. Действия очень похожи для всех типов пользовательских объектов, которые можно создать для служб Integration Services.
Ниже описывается порядок построения, развертывания и тестирования.
Подпишите сборку для формирования со строгим именем.
Постройте сборку.
Разверните сборку, переместив или скопируйв ее в соответствующую папку Служб Integration Services.
Установите сборку в глобальный кэш сборок (GAC).
Объект автоматически добавляется в область элементов.
Устраните неполадки в работе развернутой сборки, если необходимо.
Протестируйте и выполните отладку кода.
Теперь можно использовать конструктор служб SSIS в SQL Server Data Tools (SSDT) для создания, обслуживания и запуска пакетов, предназначенных для различных версий SQL Server. Дополнительные сведения о влиянии этого улучшения на пользовательские расширения см. в разделе Получение пользовательских расширений служб SSIS, поддерживаемых несколькими версиями SSDT 2015 для SQL Server 2016
Подписывание сборки
Если сборка предназначена для общего доступа, ее необходимо установить в глобальный кэш сборок. После добавления сборки в глобальный кэш сборок сборку можно использовать приложениями, такими как SQL Server Data Tools (SSDT). Глобальный кэш сборок предъявляет к добавляемой сборке особое требование: она должна быть подписана строгим именем, что гарантирует глобальную уникальность сборки. Сборка со строгим именем имеет полное имя, включающее имя, культуру, открытый ключ и номер версии сборки. Среда выполнения использует эти сведения, чтобы найти сборку и отличить ее от других сборок с тем же именем.
Чтобы подписать сборку строгим именем, необходимо иметь или создать пару открытого и закрытого ключей. Такая пара открытого и закрытого криптографических ключей используется во время построения для создания сборки со строгим именем.
Дополнительные сведения о строгих именах и шагах, которые необходимо выполнить для подписи сборки, см. в следующих разделах документации по пакету SDK для платформа .NET Framework:
Сборки со строгими именами
Создание пары ключей
Подписывание сборки строгим именем
Вы можете легко подписать сборку строгим именем в Visual Studio во время сборки. В диалоговом окне "Свойства проекта" выберите вкладку "Подпись". Выберите параметр для подписи сборки, а затем укажите путь к файлу ключа (SNK).
Сборка сборки
После подписывания проекта необходимо создать или перестроить проект или решение с помощью команд, доступных в меню "Сборка " SQL Server Data Tools. Решение может содержать отдельный проект для пользовательского интерфейса, который также должен быть подписан строгим именем и может строиться одновременно со сборкой.
Самый удобный метод для выполнения следующих двух шагов развертывания сборки и его установки в глобальном кэше сборок — это скрипт этих шагов в качестве события после сборки в Visual Studio. События сборки доступны на странице компиляции свойств проекта для проекта Visual Basic и на странице "События сборки" для проекта C#. В программах командной строки, например gacutil.exe, необходимо указывать полный путь. Пути, содержащие пробелы, и макросы, например, $(TargetPath), которые разворачиваются в пути, содержащие пробелы, необходимо заключать в кавычки.
Ниже приведен образец командной строки события после построения для пользовательского регистратора.
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe" -u $(TargetName)
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe" -i $(TargetFileName)
copy $(TargetFileName) "C:\Program Files\Microsoft SQL Server\130\DTS\LogProviders "
Развертывание сборки
Конструктор служб SSIS находит пользовательские объекты, доступные для использования в пакетах, перечисляя файлы, найденные в ряде папок, созданных при установке служб SQL Server Integration Services. При использовании параметров установки SQL Server по умолчанию этот набор папок находится в папке C:\Program Files\Microsoft SQL Server\130\DTS. Однако если для пользовательского объекта была создана программа установки, следует проверить значение в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\SSIS\Setup\DtsPath, чтобы убедиться в правильности указанного местоположения этой папки.
Примечание.
Дополнительные сведения о развертывании пользовательских компонентов с поддержкой нескольких версий в SQL Server Data Tools см. в разделе Получение пользовательских расширений служб SSIS, поддерживаемых несколькими версиями SSDT 2015 для SQL Server 2016.
Можно поместить сборку в папку двумя способами.
Переместить или скопировать скомпилированную сборку в соответствующую папку после ее построения. (Для удобства можно включить команду копирования в событие после построения.)
Построить сборку непосредственно в нужной папке.
Следующие папки развертывания, расположенные в каталоге C:\Program Files\Microsoft SQL Server\130\DTS, используются для различных типов пользовательских объектов:
| Пользовательский объект | Папка развертывания |
|---|---|
| Задача | Задачи |
| Диспетчер соединений | Связи |
| Регистратор | 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 Tools.
Устранение неполадок развертывания
Если пользовательский объект отображается на панели элементов или в списке доступных объектов, но его не удается добавить в пакет, попробуйте выполнить следующие действия:
Выполните поиск в глобальном кэше сборок на предмет наличия в нем нескольких версий компонента. При наличии нескольких версий компонента в глобальном кэше сборок конструктор не может загрузить компонент. Удалите все экземпляры сборки из глобального кэша сборок и добавьте сборку заново.
Убедитесь в том, что только один экземпляр сборки существует в папке развертывания.
Обновите панель элементов.
Подключите Visual Studio к devenv.exe и задайте точку останова для пошагового выполнения кода инициализации, чтобы убедиться, что исключения не происходят.
Тестирование и отладка кода
Самый простой подход к отладке методов времени выполнения пользовательского объекта — начать dtexec.exe из Visual Studio после создания пользовательского объекта и запустить пакет, использующий компонент.
Если вы хотите отлаживать методы времени разработки компонента, такие как метод Validate , откройте пакет, использующий компонент во втором экземпляре Visual Studio, и подключитесь к его devenv.exe процессу.
Если вы также хотите отладить методы времени выполнения компонента при открытии пакета и запуске в конструкторе служб SSIS, необходимо принудительно приостановить выполнение пакета, чтобы также можно было подключиться к процессу DtsDebugHost.exe .
Отладка методов времени выполнения объекта путем подключения к dtexec.exe
Подпишите и постройте проект в конфигурации отладки, выполните развертывание и установку в глобальный кэш сборок, как описано в этом разделе.
На вкладке Отладка диалогового окна Свойства проекта выберите Запуск внешней программы в качестве значения для параметра Начальное действие и найдите файл dtexec.exe, который по умолчанию установлен в каталог C:\Program Files\Microsoft SQL Server\130\DTS\Binn.
В текстовом поле Параметры командной строки в разделе Параметры запуска введите аргументы командной строки, необходимые для выполнения пакета, который использует пользовательский компонент. Часто аргумент командной строки содержит параметр /F[ILE], за которым следуют путь и имя DTSX-файла. Дополнительные сведения см. в статье dtexec Utility.
В исходном коде, где это необходимо, задайте точки останова в методах времени выполнения компонента.
Выполните проект.
Отладка методов времени разработки пользовательского объекта путем присоединения к SQL Server Data Tools
Подпишите и постройте проект в конфигурации отладки, выполните развертывание и установку в глобальный кэш сборок, как описано в этом разделе.
В исходном коде, где это необходимо, задайте точки останова в методах времени разработки пользовательского объекта.
Откройте второй экземпляр Visual Studio и загрузите проект Служб Integration Services, содержащий пакет, использующий пользовательский объект.
В первом экземпляре Visual Studio подключитесь ко второму экземпляру devenv.exe , в котором загружается пакет, выбрав "Присоединить к процессу " в меню отладки первого экземпляра.
Запустите пакет из второго экземпляра Visual Studio.
Отладка методов времени выполнения пользовательского объекта путем присоединения к SQL Server Data Tools
После выполнения шагов, описанных в предыдущей процедуре, принудительно приостановите выполнение пакета, чтобы его можно было присоединить к DtsDebugHost.exe. Принудительно приостановить выполнение можно путем добавления точки останова в событие OnPreExecute либо добавления задачи "Скрипт" в проект и ввода скрипта, отображающего модальное окно сообщения.
Запустите пакет. При приостановке переключитесь на экземпляр Visual Studio, в котором открыт проект кода, и выберите "Присоединить к процессу" в меню отладки. Подсоединяться следует к экземпляру DtsDebugHost.exe, содержащемуся в списке Управляемые, x86 в столбце Тип, а не к экземпляру из списка x86.
Вернитесь к приостановленному пакету и продолжите выполнение после точки останова либо нажмите кнопку ОК, чтобы закрыть окно сообщения, выданного задачей "Скрипт", и продолжить выполнение и отладку пакета.
См. также
Разработка пользовательских объектов для служб Integration Services
Сохранение пользовательских объектов
Инструменты устранения неполадок при разработке пакета