title: The transaction aborted
body: <p>im creating a C# and WCF service which picks up msgs from MSMQ.</p>
  
  <p>This is using transactional MSMQ. within the business logic, there is a condition and that condition then places a new message on a different transactional queue however I seem to always get an exception thrown and not sure where to go from here</p>
  
  <p>"System.Transactions.TransactionAbortedException: The transaction has aborted.\r\n at System.Transactions.TransactionStatePromotedAborted.CreateAbortingClone(InternalTransaction tx)\r\n at System.Transactions.DependentTransaction..ctor(IsolationLevel isoLevel, InternalTransaction internalTransaction, Boolean blocking)\r\n at System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption)\r\n at System.Transactions.TransactionScope.SetCurrent(Transaction newCurrent)\r\n at System.Transactions.TransactionScope.PushScope()\r\n at System.Transactions.TransactionScope..ctor(TransactionScopeOption scopeOption)\r\n at TMC.Services.Implementation.InboundMessageHandler.Msmq.MsmqDispatcher.Dispatch(String queueFormatAndLocation, Object itemToPlaceOnQueue, Boolean traceMessage) in E:\Msmq\MsmqDispatcher.cs:line 39\r\n at TMC.Services.Implementation.InboundMessageHandler.OmhDispatcher.AckNackDispatcher.SendAckTo</p>
  
  <p>Tg(SendAckToTgRequest request) in E:\AckNackDispatcher.cs:line 38"</p>
  
  <p>Any ideas at all?</p>
  
  <p>the code for when it is placing it on the queue:</p>
  
  <pre><code>var queue = new MessageQueue(queueFormatAndLocation);
              var msg = new System.Messaging.Message {Body = itemToPlaceOnQueue, Priority = MessagePriority.High, UseDeadLetterQueue = true, UseTracing = traceMessage};
              using (var ts = new TransactionScope(TransactionScopeOption.Required))
              {
                  queue.Send(msg, MessageQueueTransactionType.Automatic); // send the message
                  ts.Complete(); // complete the transaction
              }
  </code></pre>
  
  <p>in terms of the queueFormatAndLocation, it is correct:</p>
  
  <p>"FormatName:Direct=OS:.\private$\AckMsgs"</p>