По умолчанию TransactionScope имеет тайм-аут 60 секунд, поэтому, если все, что вы там делаете, занимает больше времени, он будет прерываться и прерываться. Вы можете увеличить тайм-аут на TransactionScope, но, откровенно говоря, 60 секунд уже довольно много. В большинстве случаев вам лучше выполнять любую длительную работу по сбору данных перед транзакцией и максимально сократить время транзакции.