TransactionScope и ASP.NET

Вещи оказались совершенно несовместимые.

При изучении TransactionScope выяснилось, что если в процессе обработки транзакции начинается еще одна транзакция в том же процессе (но например в соседнем потоке), то создается распределенная транзакция и дальше, учитывая что страниц будет открываться сразу и много – получается совершенная каша с фиксацией в непонятный момент времени. Кроме того чтобы это заработало нужно сначала помудрить с правилами разрешения и настройками сервера.

Самое плохое, что сначала всё хорошо, проблемы начинаются через несколько минут работы сайта, потому сразу не понятно помогло найденное лекарство или нет.

На данный момент пришел к выводу, что оно того не стоит – проще в начале страницы транзакцию запускать и в конце завершать без всяких оберток вручную.

2 комментария на «“TransactionScope и ASP.NET”»

  1. Мне кажется, Вы не совсем правы. TransactionScope скорее завязан на коннекшен к базе, а не на поток. Поэтому если в каждом потоке использовать свой коннекшен (что по идее более правильно), то таких проблем возникать не должно.

  2. Когда на эту особенность наткнулся Каждый TransactionScope создавался для собственный connection – была сделана aspx-страница, которая в начале работы открывала соединение, по завершении – делала коммит транзакции. Или что-то похожее.

    Проблема начала проявляться при обработке нескольких запросов одновременно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *