Я створив пакет SSIS, який імпортує файл excel у таблицю SQL Server.
Пакет SSIS працює без будь-яких проблем, коли я запускаю його локально на своїй машині, але коли я запускаю його на сервері, де планується пакет, я отримую помилку нижче (з текстового файлу я виводжу помилки з використанням протоколу SSIS).
Після дослідження, єдині рекомендації, які я міг знайти, було встановити властивість Run64BitRuntime на false, що я зробив, але все одно не пощастило. Я сумніваюся, що саме це викликає мою помилку, хоча помилка не вказує нічого щодо 64-бітного (як це було у знайдених статтях).
Я також подумав, що це може бути те, що Сервер не має відповідних драйверів Excel, але я також не думаю, що це так, тому що зазвичай повідомлення про помилку говорило б про те, що драйвери не реєструються.
На даний момент у мене немає доступу до віддаленого доступу до сервера. Я можу завантажувати пакунок лише в папку, після чого він управляється додатком, тому єдині повідомлення про помилки, які я бачу, - це те, що є у створеному мною текстовому журналі помилок.
Код помилки DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. Помилка виклику методу AcquireConnection до менеджера з'єднань "Envision" з кодом помилки 0xC0209303. Перед цим можуть бути розміщені повідомлення про помилки з додатковою інформацією про те, чому виклик методу AcquireConnection не вдався.
"Envision" - це ім'я мого менеджера з'єднань Excel.
Я заповнюю шлях файлу Excel та рядок з'єднання за допомогою виразів.
Вираз рядка з'єднання виглядає приблизно так:
"Провайдер = Microsoft.ACE.OLEDB.12.0; Джерело даних =" + @ [Користувач :: SourceFilePath] + "; Розширені властивості = \" EXCEL 12.0 XML; HDR = ТАК \ ";"
SSIS Pacakge виконується ім'ям користувача / обліковим записом Windows. Я думаю, це може бути обліковий запис веб-служб. (BDS_sprtIIS)
Хтось має якісь рішення чи пропозиції щодо вирішення цієї проблеми пакета, працюючи лише на моїй локальній машині, але не на фактичному сервері, на якому буде розміщено пакет?
Відповідь нижче я знайшов на іншому форумі, чи може це бути причиною моїх проблем? В основному вони говорять про те, що менеджер з'єднань Excel чомусь намагається отримати доступ до папки temp користувачів, і якщо у нього немає доступу до цієї папки, вона вийде з ладу:
Я також помітив, що драйвер Microsoft.JET.OLEDB.4.0 намагатиметься прочитати тимчасовий каталог під профілем користувача, який увійшов у систему.
.
... Ми запускаємо наші агенти SQL за допомогою облікового запису домену нижчого рівня та запускаємо наші пакети SSIS за допомогою облікового запису проксі. Ви маєте рацію, оскільки Прокмон підтвердив це і для мене. Я надав права облікового запису проксі в темп-каталог профілю (C: \ Документи та налаштування \ SQLAgentDomainAccount \ Локальні настройки \ Темп), і він працював!
Я не використовую завдання SQL Server Jobs або Proxy. Пакет просто виконується обліковим записом Windows, швидше за все, через скрипт командного рядка.
В обліковому записі Windows є доступ до файлу, але я не впевнений, чи має він доступ до папки "TEMP" (на яку я ніколи не посилаюся в пакеті, тому не знаю, чому потрібно мати доступ до цієї папки) ...