NHibernate exception: la Transaction n'est pas connecté, ou a été déconnecté
Dans notre développer l'environnement de tous les ASP.NET l'application fonctionne très bien. Toutefois, lorsque le déploiement du site sur la machine de test, sur certaines pages, j'obtiens cette exception:
NHibernate.TransactionException: Transaction not connected, or was disconnected
at NHibernate.Transaction.AdoTransaction.CheckNotZombied() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:line 406
at NHibernate.Transaction.AdoTransaction.Rollback() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:line 240
Je n'ai aucune idée sur comment résoudre ce problème. La seule différence, ce sont les DB versions:
Développer: 10.0.5500 (2008 R2 SP1, Express)
Test: 10.0.5500 (2008, SP3)
Quelqu'un a une idée de ce qui se passe ici?
C'est difficile à dire sans aucun code.
OriginalL'auteur Martijn | 2013-04-08
Vous devez vous connecter pour publier un commentaire.
Il y a un problème avec votre session-par-requête motif de mise en œuvre. ASP.NET est multi-thread et que la session est fermée lorsqu'un thread se termine au lieu de lorsque la demande se termine. Il y a beaucoup de exemples de la façon de gérer session-par-requête et NHibernate a construit dans le NHibernate.Contexte.WebSessionContext mais je préfère utiliser un framework injection de dépendance comme Ninject.
OriginalL'auteur Jamie Ide
C'était un commentaire, mais j'ai eu le même problème.
Cette erreur peut se produire quand un déclencheur provoque un niveau de base de données d'exception. Ce sera la cause de la transaction à être annulée par conséquent, l'exception.
Il a été utile pour moi!
Yep. J'avais un peu de type de données incompatible dans l'insertion des données, et j'ai eu cette erreur incompréhensible de NHibernate. Cela aurait été bien si ils pouvaient juste de passer par le biais de l'erreur de Sql à la place de cette confusion non-sens.
Cela a été mon cas.
vous pouvez utiliser le générateur de profils SQL pour obtenir le sous-jacent, d'un script ou la commande qui a provoqué l'erreur. suis un peu surpris de voir l'erreur de ne pas remonter correctement
OriginalL'auteur Daniel Little
Un autre problème peut être la sécurité de l'utilisateur (une base de données au niveau de l'exception à nouveau).
Dans mon cas, le sous-jacent DB problème était le suivant:
OriginalL'auteur Alex M