Выполнение пакета ssis напрямую, но не с помощью кода c# - PullRequest
3 голосов
/ 12 февраля 2020

У меня есть следующий код, который работает нормально для выполнения пакета служб 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 Ответ

2 голосов
/ 12 февраля 2020

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

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

(1) l oop over errors

Вы можете l oop over error пакета, открыв свойство Errors. Например:

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

Дополнительная информация по адресу:

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

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


Возможные причины сбоя

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