2010-11-19 2 views
0

J'ai un problème. J'ai configuré ma gestion de session selon l'appel wcf. J'utilise StructureMap comme IoC et j'injecte la session au constructeur du référentiel.La session est fermée dans la session par scénario d'appel WCF

Il existe un scénario dans lequel l'exception Session est fermée. Donc je débogue et c'est le workflow: 1. SessionFactory.OpenSession() 2. Enregistrer la session dans le contexte 3. StructureMap obtient la session du contexte (For(). Utilisez < _sessionFactory.GetCurrentSession()), et injectez la session dans mon dépôt (en ce moment Session.IsOpen == true) 4. Je fais une requête. 5. Sur requête exécuter (l'exception Session est fermée est levée) 6. WchCall se termine 7. Le Detach (InstanceContext) de NHibernateContextManager: IExtension est appelée (à ce moment Session.IsOpen == true !!!!) 8. Session.Close est appelé

Cette exception se produit uniquement dans un scénario, tout le reste fonctionne correctement.

Aidez-nous s'il vous plaît.

+0

Et cela se produit uniquement dans une classe, le même référentiel fonctionne dans un autre. – Luka

+0

Et cela ne se produit que si je laisse Instancier la classe par StructureMap, mais si j'utilise ObjectFactory.GetInstance () alors cela fonctionne bien. – Luka

Répondre

0

Ok, a trouvé le problème. Le problème était dans la configuration de StructureMap pour cette classe: J'avais: ForSingletonOf(). Use();

Maintenant changé pour: For(). Use();

Questions connexes