SSIS - Задача сценария... использовать сценарий версии 15.0, который не поддерживается в этом выпуске интегрированной службы

Привет, я ищу руководство.

Я разработал проект SSIS с парой задач сценариев и компонентов сценария, используя Visual Studio 2015 для целевой версии 2016.

У меня есть два сервера среды A и сервер B, на которых установлен SSIS 2016 SP1.

Я выполнил проект, развернутый из пакетов на сервер А, и проверил, все пакеты выполнены отлично. Однако, когда я развернул пакеты в SSIS_DB с сервера A на сервер B I, я получил эти ошибки в своем отчете о выполнении.

Метаданные компонента "script component, clsid { }" не могут быть обновлены до более новой версии компонента. Сбой метода PerformUpgrade

2

Возникла исключительная ситуация при загрузке задачи сценария из XML: System.Exception: задача сценария "" использует сценарий версии 15.0, который не поддерживается в этом выпуске служб Integration Services. Чтобы запустить пакет, используйте задачу "Сценарий" для создания нового сценария VSTA. В большинстве случаев сценарии автоматически преобразуются для использования поддерживаемой версии при открытии пакета служб интеграции SQL Server в%SQL_PRODUCT_SHORT_NAME% служб интеграции. в Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(события XmlElement elemProj, IDTSInfoEvents)

Интересно, что если я разверну свои пакеты непосредственно из Visual Studio на сервере B, они будут выполнены без проблем. Так что, похоже, существуют несоответствия между сервером A и сервером B.

Небольшая предыстория этого заключается в том, что когда были построены оба сервера, на сервере A был установлен Microsoft SQL Server 2016 (SP1-GDR) и сервер Microsoft SQL Server 2016 (окончательная первоначальная версия), но теперь оба сервера имеют Microsoft SQL Server 2016 (SP1-GDR) после сервера B был обновлен. Я не уверен, как обновление было выполнено по моему подозрению, что SSIS на сервере разные, но я не могу доказать это. когда я проверяю версию, они оба возвращают одинаковые или похожие метаданные

1 ответ

Решение

Это было вызвано SSMS. Я не знаю, что происходит внутри, но во время развертывания я использовал SSMS 2017, которая, кажется, обновляет компоненты сценариев в моих пакетах. Я перешел на использование SSMS 2016 и эта проблема исчезла

Правильный ответ здесь: https://andyleonard.blog/2017/09/ssis-version-15-0-script-error/

В моем случае проблема заключалась в том, что на уровне проекта "TargetServerLevel" установлено значение "SQL Server 2017". Правильное значение должно быть "SQL Server 2016". После изменения значения и повторного развертывания проекта ошибки исчезают. Я считаю, что один из разработчиков в моей команде использовал VS 2017, когда добавил проект. Все остальные задачи и компоненты, кроме скрипта, работали хорошо даже при неверной версии сервера, и проблема возникала только тогда, когда мне приходилось использовать задачи и компоненты скрипта. Чтобы устранить проблему, откройте параметры проекта => Свойства конфигурации => TargetServerVersion Выберите "SQL Server 2016", а затем разверните на сервере.

Просто резюмирую некоторые вещи, потому что есть несколько причин столкнуться с этой проблемой:

  1. Вы развертываете пакет с определением целевой версии для другого SQL Server.

  1. Вы развертываете пакет, который содержит задачу сценария с другой версией SSMS, чем версия SQL Server.

Если ваш пакет, например, не содержит задачи сценария, то любая версия SSMS может развернуть пакет в любой версии SQL Server через каталог SSISDB. Не знаю, почему это происходит. Похоже, вы можете развертывать и выполнять пакеты, убедившись, что целевая версия пакета поддерживается из версии SQL, но также, если у вас есть ScriptTask внутри, вам нужно быть очень осторожным и убедиться, что версия служб интеграции SSMS такая же с версией SQL Server.

Я открою вопрос к Microsoft, просто чтобы быть уверенным, почему задача скрипта имеет такую ​​обработку. Может быть, потому, что задача сценария зависит от платформы.

Другие вопросы по тегам