J'ai un code VB.NET qui crée une instance TransactionScope:instanciation TransactionScope retourne null
LoggingUtility.LogDebug("UpdateCallTable", "SatComCallDataImporter", "About to associate call data with contracts")
Using ts = New TransactionScope()
LoggingUtility.LogDebug("UpdateCallTable", "SatComCallDataImporter", "Getting all unimported SatCom calls")
Mon application jette une exception sur l'appel à la création d'une nouvelle TransactionScope, avec « référence d'objet non définie à une instance d'un objet. ". L'exception n'est pas lancée sur ma machine de développement ou sur ma machine de test. seulement sur la machine de production des clients, et je ne sais pas pourquoi. J'ai placé des lignes de débogage immédiatement avant et après cette ligne, donc je suis certain que c'est cette ligne qui cause le problème. A ont utilisé TransactionScopes dans toute l'application et c'est le seul endroit qui lève l'exception sur la machine client. "A propos d'associer des données d'appel à des contrats" est écrit dans le journal et l'entrée de journal suivante est la "Référence d'objet non définie sur une instance d'un objet".
Le code fonctionne correctement si je le retire d'une transaction. J'ai lutté avec cela pendant 4 jours maintenant et n'ai pas eu plus près.
Silly moi. L'erreur a été l'annulation de la transaction, donc bien sûr, mes journaux de débogage n'étaient pas écrits (dans la base de données). La cause réelle était une différence entre la spécification d'importation et les données en cours d'importation. Un champ qui n'aurait jamais dû être nul était en fait nul. Je ne l'ai jamais pris en compte parce que j'avais un fichier de spécifications avec lequel tester, et pas de vraies données. Cela semble trop évident maintenant. –
ARgg, fait celui-là. C'est encore mieux si vous essayez de mettre un peu de logique dans "si avorté faire ceci" et vous finissez par sauvegarder le tout. FYI Nouveau TransactionScope (TransactionScopeOption.Supress) vous permettra de faire des choses à un DB en dehors de la transaction en cours. – Spence