Развертывание настраиваемого диспетчера соединений служб SSIS с ошибкой "... не распознано как допустимый тип диспетчера соединений"

Я сделал собственный Диспетчер соединений служб SSIS (.NET 4.6.2):

namespace HelloWorldCm
{
    using Microsoft.SqlServer.Dts.Runtime;

    [DtsConnection(
        ConnectionType = "HELLOWORLD",
        DisplayName = "Hello World Connection Manager",
        Description = "Connection manager for Hello World")]
    public class HelloWorldConnectionManager : ConnectionManagerBase
    {
        public override DTSExecResult Validate(IDTSInfoEvents infoEvents)
        {
            return DTSExecResult.Success;
        }
    }
}

Я ссылаюсь Microsoft.SQLServer.ManagedDTS версия 14.0.0.0 который в моем понимании SQL Server 2017. Локально, если я зарегистрирую его в GAC и скопировать в мой /Connections я могу использовать SSIS из Visual Studio и добавить диспетчер подключений в свой DTSX,

Я могу сохранить / построить и т. Д., И он работает нормально - поэтому я затем копирую диспетчер подключений и DTSX на свою виртуальную машину, работающую на SQL Server 2017. Я снова регистрируюсь в GAC и копирую /Connections папка.

После, я Import Packages... в мой Integration Services Catalogsвыберите DTSX и нажмите Далее. Это тогда говорит мне, что:

Один или несколько выбранных пакетов не готовы.

И когда я смотрю на то, почему я вижу:

Тип соединения "HELLOWORLD", указанный для диспетчера соединений "Hello World Connection Manager", не распознается как допустимый тип диспетчера соединений. Эта ошибка возвращается при попытке создать диспетчер соединений для неизвестного типа соединения. Проверьте правильность написания в имени типа соединения.

Я пытался заставить это работать в течение довольно долгого времени, поэтому я перечислю то, что я пробовал:

  1. Пробовал версию "Любой процессор"
  2. Пробная версия "x86"
  3. Пробная версия "x64"
  4. Пробовал DTSX с фиктивной задачей
  5. Перезапуск сервера (после любого развертывания)

Я уверен, что другие. Я также создал пользовательскую задачу, которая просто печатала "Hello World" в журналах, она была скомпилирована как "Any CPU", развернута таким же образом (в тех же местах), и SSIS, похоже, не возникли проблемы с его поиском и принятием DTSX. Поэтому я достаточно уверен, что "Любой процессор" должен быть достаточно хорошим.

Я не уверен, куда идти сейчас - насколько я вижу, у меня есть правильные ссылки, правильная версия.NET, и развертывание такое же, как для задачи.

Я положил dtsx ниже, если это что-то есть:

<?xml version="1.0"?>
<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts"
  DTS:refId="Package"
  DTS:CreationDate="6/11/2019 1:09:07 PM"
  DTS:CreationName="Microsoft.Package"
  DTS:CreatorComputerName="CHRIS"
  DTS:CreatorName="CHRIS\cskar"
  DTS:DTSID="{0F2D59A1-461B-46ED-8765-75484C06253C}"
  DTS:ExecutableType="Microsoft.Package"
  DTS:LastModifiedProductVersion="15.0.1100.123"
  DTS:LocaleID="2057"
  DTS:ObjectName="Package1"
  DTS:PackageType="5"
  DTS:VersionBuild="1"
  DTS:VersionGUID="{E688A11B-234E-4F39-991E-BAA0A37642E6}">
  <DTS:Property
    DTS:Name="PackageFormatVersion">8</DTS:Property>
  <DTS:ConnectionManagers>
    <DTS:ConnectionManager
      DTS:refId="Package.ConnectionManagers[Hello World Connection Manager]"
      DTS:CreationName="HELLOWORLD"
      DTS:DTSID="{9E82E067-2A0A-4C9C-931D-FD59FD159B5C}"
      DTS:ObjectName="Hello World Connection Manager">
      <DTS:ObjectData>
        <InnerObject>
          <TargetServerVersion
            Type="3"
            Value="150" />
        </InnerObject>
      </DTS:ObjectData>
    </DTS:ConnectionManager>
  </DTS:ConnectionManagers>
  <DTS:Variables />
  <DTS:Executables />
  <DTS:DesignTimeProperties><![CDATA[<?xml version="1.0"?>
<Objects Version="8">
</Objects>]]></DTS:DesignTimeProperties>
</DTS:Executable>

1 ответ

Решение

Каталог служб SSIS предназначен для хранения проектов, а не отдельных пакетов. Это была новая функция в 2012 году, которая помогает хранить связанные пакеты вместе. Вы можете параметризировать проект и делиться диспетчерами соединений между пакетами. Если вы хотите развернуть каталог, вам нужно импортировать файл ".ispac", или вы можете щелкнуть правой кнопкой мыши в Visual Studio и нажать "Развернуть".

В модели развертывания проекта отдельный пакет ".dtsx" не может рассматриваться как отдельный. Это имеет смысл только как часть проекта из-за новых функций, описанных выше.

Развертывание автономных пакетов в MSDB является устаревшей моделью и поддерживается, поэтому нам не нужно сразу переносить все наши пакеты в каталог.

Развертывание проектов и пакетов служб Integration Services (SSIS)

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