Выполнение пакета ssis напрямую, но не с помощью кода на C #

У меня есть следующий код, который, кажется, работает нормально для выполнения пакета SSIS из c # НО каждый раз, когда переменная «Resp» возвращает сбой, даже если пакет проходит, когда я выполняю его непосредственно в SSIS.

Опять же, пакет содержит компонент Script, который выполняет запись в таблицу сервера SQL. Все это работает нормально, когда пакет выполняется непосредственно в SSIS, но ничего не происходит, когда тот же пакет вызывается через C # с кодом ниже. Я не могу понять, что я делаю неправильно. Помогите!

string packageLocation = @"c:packageLocationPath";
Package pkg;
Application app;
app = new Application();
pkg = app.LoadPackage(packageLocation, null);
var Resp = pkg.Execute();

Всего 1 ответ


Обнаружение ошибки

Сначала вы должны прочитать ошибки, возникшие в пакете. Есть два варианта обнаружения этих ошибок:

(1) зацикливание ошибок

Вы можете перебрать ошибки пакета, открыв свойство Errors. Как пример:

if(p.Errors.Count > 0){
    foreach(DtsError err in p.Errors){
        Messagebox.Show(err.Description);
    }
}

Больше информации на:

(2) Включить ведение журнала из пакета

Вы можете фиксировать все ошибки, предупреждения и информацию из пакета, включив опцию регистрации:


Возможные причины отказа

  1. Убедитесь, что если вы используете проверку подлинности Windows для подключения к SQL, то учетная запись пользователя, используемая для выполнения приложения через C #, предоставляется для установления подключения.
  2. Если пакет обращается к файловой системе, убедитесь, что у пользователя есть необходимые разрешения для доступа к этим файлам.

Есть идеи?

10000