NHibernate 3, HttpModule и ошибки
ФОН:
Создание запуска веб-приложения с NH3 с использованием HttpModule для управления созданием / фиксацией / откатом транзакции и сеанса. В случае возникновения ошибки я хотел бы вернуть простое сообщение пользователю, но откатить транзакцию. Привязка к событию context.Error позволяет легко откатить исключение, однако оно никогда не будет вызвано, так как исключения перехватываются, отображая дружественное сообщение для пользователя.
Из-за проблемы, описанной выше, я собираюсь создать пользовательский сценарий работы и сохранить его в контексте Http для запроса. Если возникает ошибка, установите флаг RollbackRequired и попросите единицу работы выполнить откат на основе этого. Хранение в сеансе в HttpContext - это то же самое, что с помощью CurrentSessionContext?
Если у кого-то есть другие мысли, я был бы великолепен.
Благодарю.
1 ответ
Хранение в сеансе в HttpContext - это то же самое, что с помощью CurrentSessionContext?
Да, это почти то, что делает WebSessionContext.
Если у кого-то есть другие мысли, я был бы великолепен.
Если вы ловите исключение, почему бы вам не откатить его?
ISession.Transaction.WasCommitted
а также ISession.ITransaction.WasRolledback
дать вам представление о том, был ли транзакция откатана / зафиксирована. Вы можете зафиксировать его в своем HttpModule, если он не откатывается и не фиксируется.