Whenever you call scope.Transaction.Begin() you start an active transaction. The other way to start a transaction is to start it implicitly when the scope.TransactionProperties.AutomaticBegin is set to true. It is active until the scope.Transaction.Commit() is called. When an exception occurs before the Commit method is invoked you still have the Transaction active and you can rollback it safely in the catch block. In case the exception occurs during the commit operation we internally rollback the transaction – so when the catch block code is executed the transaction is inactive. Therefore, it is a good practice to check the status of the transaction before rolling it back.
I hope this information will wipe the confusion. If you want to understand the reason for the exception in your case, please provide the full code.
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Telerik Public Issue Tracking
system and vote to affect the priority of the items