Подтвердить что ты не робот

Отладка в SSIS

Как отлаживать код .NET, написанный в рамках задачи script в пакете SSIS? Среда разработки позволяет разместить точку останова, но не приводит меня к коду, как это было бы при регулярном .NET-программировании во время отладки.

Кроме того, я не понимаю, как добавить переменные пакета SSIS в окно просмотра отладки?

В настоящее время я понял, что использование msgbox. Но это не замена полноценной отладки с использованием среды разработки. Любая помощь приветствуется. Благодарю.

4b9b3361

Ответ 1

Отладка пакетов SSIS в среде BIDS - это не та же игра, что и в Visual Studio.

Вам может быть полезно ознакомиться с ссылкой "Отладка" (SSIS)

Если вы разработали свой собственный пользовательский компонент, то есть изнутри visual studio, вы должны уметь отлаживать специфические функции этого компонента в среде Visual Studio до того, как этот компонент будет доступен для использования в BIDS.

Вы не можете отлаживать внутренний код .NET, который составляет любой из других встроенных компонентов SSIS (т.е. задачи FTP) в BIDS, поэтому я сомневаюсь, что пользовательский компонент будет другим.

Ответ 2

Примечание. Если вы работаете на x64, вы должны изменить проект (SSIS) Debug propertytie Run64BitRuntime на false.

После этого вы сможете отладить задачу script в .net и сломать код в script.

Кстати, Джон Сэнсом, похоже, не прочитал эту часть вопроса: Как отлаживать .NET-код, написанный в рамках задачи script в пакете SSIS? Его задача script, а не обычная отладка SSIS.

Надеюсь, что это поможет.

Ответ 3

Я думаю, что SSIS поддерживает и останавливается в точке останова в Script Задача (в потоке управления). Он не поддерживает его для Script Transform (в потоке данных). Это очень неудачные ограничения.

SSIS показывает значения переменных в окне просмотра, когда вы останавливаетесь на контрольной точке. Я не уверен в точке останова Script, но точки останова SSIS (on-pre-execute и т.д.) Работают. Но вам нужна точка останова - вы не можете смотреть переменное значение в случайный момент без точки останова.

Ответ 4

Вы можете присоединить отладчик к (почти) любому процессу, для которого вы пишете код .NET, вставив вызов Debugger.Break в соответствующей точке вашего источника.

Цитата MSDN:

Если отладчик не подключен, пользователи спрашивают, хотите ли они подключить отладчик. Если да, отладчик запущен. Если отладчик подключен, отладчик сигнализируется событием прерывания пользователя, и отладчик приостанавливает выполнение процесса так же, как если бы была удалена точка останова отладчика.

Я использовал это, чтобы отлаживать всевозможные вещи, включая код С#, встроенный в SSIS.

Обновлено: изменена формулировка, поскольку это уже не теоретический метод, а тот, который я использовал.

Ответ 5

хотя компонент Script в потоке данных "Задача" не позволит любой форме отладки, кроме обходных решений, таких как постоянный процесс записи, ящики сообщений e.t.c

Элемент потока управления задачами Script позволяет разработчику отлаживать код SSIS

Нашел это недавно.:)

Ответ 6

Убедитесь, что вы также используете полный пакет. Отладчик для точек разрыва пакета не будет пинать до тех пор, пока вы это сделаете.

Отладка задач script работает аналогичным образом.