Вы можете использовать IoC-контейнер для своего уровня обслуживания, и контейнер может управлять транзакцией и сеансом Nibenrate.
Ваш контроллер WebApp => уровень вызова (A) => вызов (B) одного или нескольких методов DAO /operations.
Контейнер IoC, такой как Spring.NET, будет управлять областью TX, например, в (A) и предоставит сеанс для вашего DAO в (B). Фиксация (или откат) будет обработана в конце вызова уровня обслуживания.