SSIS Foreach File Enumerator не находит файлов при выполнении из развернутого пакета

#sql-server #ssis

#sql-сервер #ssis

Вопрос:

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

У меня есть пакет SSIS, который проходит через сетевую папку с файлами Excel, я не буду объяснять, что он делает внутри контейнера цикла, поскольку это не имеет значения.

Я ссылаюсь на папку через UNC servername folder

  1. Пакет отлично работает из Visual Studio.
  2. Я развернул пакет в каталогах служб Integration Services на сервере
  3. После развертывания я подключаюсь к серверу со своего локального компьютера через SSMS, а затем выполняю его из SSMS через «Каталоги служб интеграции»… Выполнить — сбой.
  4. Однако, если я удаляю рабочий стол на поле SQL Server, затем запускаю SSMS, подключаюсь к SQL Server, используя свои собственные учетные данные, и выполняю пакет, используя точно такой же метод, как указано выше, он работает нормально.

Когда я просматриваю журналы неудачных попыток, я вижу предупреждение о том, что «Для каждого файла enumerator пуст». Я не уверен, что это говорит о полной истории, поскольку, если я переименую сетевую папку, я получу то же сообщение (я ожидал увидеть сообщение об ошибке, что папка не найдена) — это может иметь или не иметь значения.

Я набросал краткий обзор того, что работает, а что нет

ОБРАТИТЕ ВНИМАНИЕ, что метод «выполнение сценария» — это просто сценарий t-sql для запуска этих пакетов. Это метод, который я буду использовать в конечном итоге, но на данный момент я сосредоточен на простом методе выполнения по щелчку правой кнопкой мыши, поскольку это, по сути, делает то же самое.

введите описание изображения здесь

С тех пор, как я это сделал, я попробовал еще несколько вещей…

  • Я попытался получить доступ к папке как UNC, подключенный диск, а также UNC, используя IP-адрес вместо имени сервера.
  • Я воссоздал проблему на нашем сервере разработки, чтобы я мог изменить учетные записи служб и т. Д.
  • Я попробовал учетные записи по умолчанию как в службах SSIS, так и в SQL Agent.
  • Я попытался изменить их на учетные записи домена и учетные записи сетевых служб.

Я получаю пакет для регистрации имени папки, которое является выражением and — это всегда выглядит правильно. Я делаю то же самое с именем пользователя, которое всегда показывает меня как пользователя exection.

Я могу изменить большинство вещей, поскольку я могу протестировать на сервере разработки, за исключением тестирования с учетной записью администратора домена, поэтому любые предложения будут с благодарностью.

Комментарии:

1. Я рискну предположить, что это проблема с двойным переходом, и поэтому вы пытаетесь пройти аутентификацию в каталоге как анонимный пользователь; и, следовательно, файлов нет. Обратите внимание, что выполнение сценария для запуска пакета и щелчок правой кнопкой мыши по пакету в SSISDB и running — это фактически одно и то же; последний использует графический интерфейс для создания сценария, который затем выполняется. Так же, как если бы вы создавали LOGIN через GUI , или изменяли разрешения для объекта.

2. Спасибо за ответ @Larnu. Мои знания о сети не так уж велики, поэтому я не уверен, как я могу решить эту проблему, если это проблема с двойным переходом. Тем временем я собираюсь попробовать еще одну или две вещи. Кстати: сценарий, о котором я упоминал, реплицирует метод SSMS в том смысле, что он генерирует executionid с использованием [catalog].[create_execution] , а затем выполняет его с использованием [catalog].[start_execution] @execution_id . Этот бит отлично работает для других пакетов, поэтому я не беспокоюсь об этом в данный момент.

3. Боюсь, Алан, это тоже не мой опыт. Обеспечение того, чтобы был разрешен «двойной переход» (через kerboros), было настроено нашим сетевым администратором, и я «считаю», что он установлен на уровне хоста, а не домена (хотя я могу сильно ошибаться в этом, поскольку, возможно, именно этот маршрут был выбран для нашей среды).

4. Если я ничего не добьюсь, я поговорю с НИМ и посмотрю, имеет ли это смысл для них. Если я разрешу это, я опубликую здесь, еще раз спасибо.

5. спасибо @billinkc Я прочитаю статьи и посмотрю, что я получу (или передам их ЕМУ! ) Я думаю, что вы оба можете быть правы, поскольку я изменил пакет, чтобы использовать локальный диск на SQL server (через UNC), и он отлично работает во всех случаях. Не является производственным решением, но немного сужает поиск.