Я пытаюсь использовать некоторые службы WCF из служб SSIS. У меня все работало нормально с машины для разработки. Однако, когда другой разработчик пытается это сделать, у них возникают проблемы.
Если другой разработчик скопирует мой .DTSX
файл, он будет работать. Однако, если они создают его самостоятельно, он не может подключиться (отслеживая его со стороны WCF).
Мы заметили БОЛЬШУЮ разницу в том, как SSIS действует на двух машинах, и я подозреваю, что это является причиной проблемы. Обе машины SSIS загружают одни и те же данные WSDL из службы. Однако задача веб-службы на моей машине (функциональная) имеет другой набор входных данных, чем на машине другого разработчика (нефункциональная). Например, если мой метод, который я пытался вызвать, был DoStuff(int data1, decimal data2, string msg)
, у меня было бы 5 входов: data1 (int)
, data1Specified (bool)
, data2 (decimal)
, data2Specified (bool)
и msg (string)
, тогда как на другой машине отсутствовал data1Specified
и data2Specified
входы. При работе с другими входными данными кажется, что эта переменная xxxSpecified
всегда создается моей машиной для всех типов данных, кроме строк (не проверенных всесторонне, но добавивших ~ 8 типов данных), но машина другого разработчика НИКОГДА не создает их xxxSpecified
переменных.
Еще одно замечание: если другой разработчик импортирует .DTSX
с моего компьютера и запускает его напрямую, он работает. Если он нажимает кнопку «Загрузить WSDL», хотя он загружает точно такой же WSDL, он получает другой набор входных данных после указания службы / метода для вызова. Очевидно, что его среда разработки SSIS принимает решения, отличные от моих, и мы не можем понять, почему или как сделать его поступок более похожим на мой. Мы также даже не осознаем, почему эти xxxSpecified
переменные, по-видимому, необходимы («Указано» существует НИГДЕ в WSDL).
ПОЧЕМУ SSIS генерирует эти xxxSpecified
входные данные и почему в одной среде, а не в другой?
- Пояснение: «GoodDevBox» создает проект вручную, с нуля, и он работает (т.е. имеет входные данные, указанные в xxxSpecified). «BadDevBox» создает проект вручную, с нуля, и он не работает (т. Е. Отсутствует ввод данных xxxSpecified). Проблема не имеет ничего общего с совместным использованием проектов / решений. Фактически, разделение их - единственный способ заставить это работать, если «BadDevBox» не повторно обрабатывает WSDL.