Я вижу проблему с заданием SSIS (SQL Server 2005), в результате которого появляется следующая ошибка:
Имя файла "Provider = Microsoft.Jet.OLEDB.4.0;Источник данных = \ UNC \ FOLDERS \ filename.xls; Расширенные свойства = "EXCEL 8.0; HDR = YES"; "указанное в соединении недействительно.
Мой поиск по этому сайту и другим указывает на то, что наиболее частой причиной этого является ошибка прав доступа, но я не верю, что это так в этой ситуации,число файлов было успешно обработано с помощью этой реализации.
Вот краткий обзор настройки:
Поставщики FTP-файлов нам ежедневно, которые служба Windows получает, копирует на временныйкаталог, а затем вызывает задания SSIS для этих файлов.Для каждого поставщика есть два задания SSIS, одно для потока данных моментального снимка и одно для списка транзакций.
В настоящее время в общем процессе насчитывается более 50 различных заданий служб SSIS.Все они работают, за исключением одного конкретного задания транзакции, которое завершается с ошибкой выше в шаге задачи скрипта.Файлы приходят по крайней мере ежедневно с уникальными именами файлов, поэтому я беру работу, определяю поставщика на основе исходного каталога, а затем определяю тип файла на основе индикаторов в имени файла, чтобы определить, какое задание SSIS вызывать.Поскольку имена файлов меняются каждый день, когда служба вызывает задание SSIS, я передаю ряд параметров, включая имя файла поставщика, чтобы он мог правильно подключиться к файлу.
Каждое задание начинается с задачи сценария, которая устанавливает необходимые значения переменных для остальной части задания.Например, поскольку имя файла вендора меняется при каждом запуске, я передаю имя файла вендора через коллекцию переменных служб SSIS, а затем задаю строку подключения источника данных, используя это имя файла в качестве источника данных в строке.Именно в этот момент задачи скрипта возникает вышеуказанная ошибка.Вот код сценария задачи, в котором возникает ошибка:
Dts.Connections("Transactions File").ConnectionString = _
Dts.Variables("ConnectionString").Value.ToString().Replace("##FILE_PATH##", sourceFilePath)
Значение ConnectionString: Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = ## FILE_PATH ##; Расширенные свойства = "EXCEL 8.0;HDR = YES ";SourceFilePath - это полный UNC-путь к файлу вендора в каталоге обработки
Я не верю, что это ошибка прав доступа, так как все другие файлы, проходящие этот процесс (использующие тот же каталог хранения для обработки), работают,Это не должно быть связано с тем, что файл не существует, поскольку он повторяет тот же процесс, что и любой другой файл, и я убедился, что файл правильно попадает в правильный каталог.Я также подумал, что строка подключения может быть слишком длинной, но путь к файлу заканчивается на 109 символов и даже с более коротким (<90) полным путем, возникает та же ошибка. </p>
Есть ли что-нибудь еще, что вы можетепридумать для меня посмотреть?Спасибо за любую помощь.