An implementation of the ITransactionScopeFactory interface is used in the ReceiveMessagePipeline by the TransactionScopeObserver to create a transaction on around the OnHandleMessage pipeline event.
This allows messages to be optionally handled within a TransactionScope.
If you do not want to make use of a TransactionScope you can disable it through configuration:
<transactionScope
enabled="true|false"
isolationLevel="ReadCommitted"
timeoutSeconds="30" />
It is the responsibility of the ITransactionScopeFactory implementation to return a NullServiceBusTransactionScope should the transaction scope not be required. An example can be viewed in the source for the DefaultServiceBusTransactionScopeFactory.
ITransactionScope Create(PipelineEvent pipelineEvent)
The method returns a new ITransactionScope instance.