Задать вопрос
@nurdus

SSIS. Почему не работает C# сценарий при запуске через job. Варианты?

Добрый день, Коллеги.
Есть C# блок со следующим кодом, который конвертирует бинарный excel в обычный:
string xlsb = Dts.Variables["$Project::FilePath2"].Value.ToString();
string xlsx = Dts.Variables["$Project::FilePath"].Value.ToString();

// init excel
Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application();
excelApplication.DisplayAlerts = false;

// open book in any format
Workbook workbook = excelApplication.Workbooks.Open(xlsb, XlUpdateLinks.xlUpdateLinksNever, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

// save in XlFileFormat.xlWorkbookDefault format which is XLSX
workbook.SaveAs(xlsx, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

// close workbook
workbook.Close(false, Type.Missing, Type.Missing);
//excelApplication.DisplayAlerts = true;

// shutdown excel
excelApplication.Quit();

Если запускать руками в VS, то всё работает. Если сделать deploy и поставить на расписание - не работает, ругается:
Convert xlsb -> xlsx:Error: Exception has been thrown by the target of an invocation.

При этом права к папке есть, параметры прописаны, excel установлен 2016, 64-битный, под пользователем от которого всё работает на сервер заходили, excel запускали, пробовал запускать 32-битном режиме - всё безрезультатно. И validation и execute выполняются (правда при execute файл не создается, но с ошибкой не падает). В логах на сервере информации об ошибках нет.

Буду рад любой идеи и даже "костылю". Заранее спасибо.
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Сложный 4 комментария
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
Ну я бы начал с оборачивания кода в try-catch и в catch вываливал в лог подробненько exception и inner exeption пока есть.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы