У меня есть пользовательский менеджер соединений, который подключается к базе данных, и пользовательская задача, которая использует этот CM для фактического выполнения работы.
Это хорошо работает на многих системах, но сегодня у меня есть проблема где во время разработки - т.е. когда настройки в Задаче настроены, он может найти диспетчер соединений - и использовать его, но как только он перейдет в фазу RunTime - диспетчер соединений не появится в параметре Connections
метода Execute
:
DTSExecResult Execute(Connections connections, VariableDispenser variableDispenser, IDTSComponentEvents componentEvents, IDTSLogging log, object transaction)
и, как следствие, - не будет работать.
Сейчас - пользовательский интерфейс, который является получение CM и выполнение - это с использованием другого метода - (IServiceProvider.GetService(typeof(IDtsConnectionService))
), который, как я полагаю, является одной из причин - но ему удается получить диспетчер соединений.
Но я не знаю, почему это происходит - на моей машине все работает отлично, а на другой - не работает - и, насколько я вижу, - они практически идентичны с точки зрения версий. По крайней мере, для вещей, которые имеют значение.
Есть ли что-то, что мне нужно проверить, чтобы заставить Connections
работать?
Если я добавлю также SQL CM - Задача увидит его, но все еще не увидит пользовательский.
РЕДАКТИРОВАТЬ / Обновить
Я установил - коллекция Connections
никогда содержит CM, однако он доступен через другие средства (например, IServiceProvider
) выше. Они, однако, не доступны для Task
.