2011-08-15 3 views
0

CONTEXTE:NHibernate 3, HttpModule et erreurs

Création du début d'une application Web avec NH3 en utilisant HttpModule pour gérer la création/commit/rollback de la transaction et session. Dans un scénario où une erreur se produit, je souhaite renvoyer un message simple à l'utilisateur, mais annuler la transaction. Accrocher dans l'événement context.Error, permet un retour à une exception, mais il ne sera jamais appelé puisque les exceptions sont interceptées, affichant un message amical à l'utilisateur. En raison du problème ci-dessus, je vais créer un scénario d'unité de travail personnalisé et le stocker dans le contexte HTTP pour la requête. Si une erreur se produit, définissez un indicateur RollbackRequired et demandez à l'unité de travail d'effectuer une restauration en fonction de cela. Stockage dans la session dans HttpContext - Est-ce la même chose que d'utiliser CurrentSessionContext?

Si quelqu'un a d'autres idées, je serais génial.

Merci.

Répondre

0

Stockage dans la session dans HttpContext - Est-ce la même chose que d'utiliser CurrentSessionContext?

Oui, c'est à peu près ce que fait le composant WebSessionContext.

Si quelqu'un a d'autres idées, je serais génial.

Si vous rencontrez l'exception, pourquoi ne pas la renvoyer également?

ISession.Transaction.WasCommitted et ISession.ITransaction.WasRolledback vous indiquent si la transaction a été annulée/validée. Vous pouvez le valider dans votre HttpModule s'il n'est pas restauré et non validé.

+0

Merci pour la réponse. Je ne voulais pas le renvoyer directement dans le service ou les calques. Il s'est passé à moi qu'il serait préférable de laisser cela à l'implémentation HttpModule/UoW. – TheITGuy