NHibernate 3, HttpModule и ошибки

ФОН:

Создание запуска веб-приложения с NH3 с использованием HttpModule для управления созданием / фиксацией / откатом транзакции и сеанса. В случае возникновения ошибки я хотел бы вернуть простое сообщение пользователю, но откатить транзакцию. Привязка к событию context.Error позволяет легко откатить исключение, однако оно никогда не будет вызвано, так как исключения перехватываются, отображая дружественное сообщение для пользователя.

Из-за проблемы, описанной выше, я собираюсь создать пользовательский сценарий работы и сохранить его в контексте Http для запроса. Если возникает ошибка, установите флаг RollbackRequired и попросите единицу работы выполнить откат на основе этого. Хранение в сеансе в HttpContext - это то же самое, что с помощью CurrentSessionContext?

Если у кого-то есть другие мысли, я был бы великолепен.

Благодарю.

1 ответ

Решение

Хранение в сеансе в HttpContext - это то же самое, что с помощью CurrentSessionContext?

Да, это почти то, что делает WebSessionContext.

Если у кого-то есть другие мысли, я был бы великолепен.

Если вы ловите исключение, почему бы вам не откатить его?

ISession.Transaction.WasCommitted а также ISession.ITransaction.WasRolledback дать вам представление о том, был ли транзакция откатана / зафиксирована. Вы можете зафиксировать его в своем HttpModule, если он не откатывается и не фиксируется.

Другие вопросы по тегам