Débogage dans SSIS
Comment déboguer le code. net écrit dans une tâche de script dans un package SSIS? L'environnement de développement permet de placer un point d'arrêt mais ne m'amène pas au code comme il le ferait dans la programmation. net régulière lors du débogage.
En outre, Je ne comprends pas comment ajouter les variables de paquet SSIS à la fenêtre de surveillance de débogage?
Actuellement une chose que je pensais était l'utilisation de msgbox. Mais ce n'est pas un substitut à un débogage à part entière en utilisant l'environnement de développement. Toute aide est appréciée. Grâce.
6 réponses
Le débogage des paquets SSIS dans L'environnement BIDS n'est pas le même jeu de balle qu'avec Visual Studio.
Vous pourriez trouver utile de consulter l'ouvrage de référence Débogage Comment-À-Rubriques(SSIS)
Si vous avez développé votre propre composant personnalisé, c'est-à-dire à partir de visual studio, vous devriez pouvoir déboguer les fonctionnalités spécifiques de ce composant dans L'environnement Visual Studio, avant de rendre le composant disponible pour une utilisation dans OFFRE.
Vous n'êtes pas en mesure de déboguer le code.net interne qui constitue l'un des autres composants SSIS intégrés (C'est-à-dire la tâche FTP) dans BIDS, donc je doute qu'un composant personnalisé soit différent.
Remarque: Si vous exécutez sur x64, vous devez changer la propriété de débogage du projet (SSIS) Run64BitRuntime En false.
Après cela, vous pourrez déboguer une tâche de script dans. NET et casser le code dans le script.
Au fait John Sansom ne semble pas avoir lu cette partie de la question: Comment déboguer le code. net écrit dans une tâche de script dans un paquet SSIS? C'est une tâche de script, pas un débogage SSIS normal.
J'espère que cela aide.
Je pense que SSIS prend en charge et s'arrête sur le point d'arrêt dans la tâche de Script (dans le flux de contrôle). Il ne le supporte pas pour la transformation de Script (dans le flux de données). Il est très regrettable restrictions en effet.
SSIS affiche les valeurs des variables dans la fenêtre de surveillance lorsque vous vous arrêtez sur un point d'arrêt. Je ne suis pas sûr du point d'arrêt du script, mais les points D'arrêt SSIS (on-pre-execute, etc) fonctionnent. Mais vous avez besoin d'un point d'arrêt - vous ne pouvez pas regarder la valeur de la variable au moment aléatoire sans point d'arrêt.
Vous pouvez attacher un débogueur à (presque) n'importe quel processus pour lequel vous écrivez du code. net en intégrant un appel à Debugger.Break
au point approprié dans votre source.
Citant MSDN:
Si aucun débogueur n'est attaché, les utilisateurs sont invités à attacher un débogueur. Si oui, le débogueur est démarré. Si un débogueur est attaché, le débogueur est signalé par un événement de point d'arrêt utilisateur, et le débogueur suspend l'exécution du processus comme si un point d'arrêt du débogueur avait été frappé.
J'ai utilisé ceci pour déboguer toutes sortes de choses, y compris le code C# intégré dans SSIS.
Mise à jour: libellé modifié car ce n'est plus une technique théorique, mais une que j'ai utilisée.
Assurez-vous que vous exécutez également le package complet. Le débogueur pour les points de rupture du paquet ne sera pas lancé jusqu'à ce que vous le fassiez.
Le débogage des tâches de script fonctionne de la même manière.
Bien que le composant Script de la tâche de flux de données n'autorise aucune forme de débogage autre que des solutions de contournement telles que l'écriture régulière de la progression, les boîtes de message, par exemple
L'élément de flux de contrôle de tâche de Script permettra au développeur de déboguer le Code SSIS
Trouvé récemment. :)