title: Does TransactionScope really need the "Distributed Transaction Coordinator" service running?
body: <p>I am trying to understand the details of TransactionScope.
  Below is quoted from <a href="http://msdn.microsoft.com/en-us/library/aa833153%28v=vs.100%29.aspx" rel="nofollow noreferrer">here</a>:</p>
  
  <blockquote>
    <p>Some procedures in this topic use types in the System.Transactions
    assembly. Before you follow these procedures, you must make sure that
    the <strong>Distributed Transaction Coordinator service is running</strong> on the
    computer where you run the unit tests. Otherwise, the tests fail, and
    the following error message appears: "Test method
    ProjectName.TestName.MethodName threw exception:
    System.Data.SqlClient.SqlException: MSDTC on server 'ComputerName' is
    unavailable".</p>
  </blockquote>
  
  <p>But strange enough, I stopped that service, and did some DB deletion within a TransactionScope, and didn't call the Complete() method at the end, which means the transaction should rollback.</p>
  
  <p>The DB is not affected indeed. It seems the transaction still works well.</p>
  
  <p>As I understand, we need <strong>resource manager</strong> (RM) and <strong>transaction manager</strong> (TM) to make the transaction on resources happen. In my scenario, the Distributed Transaction coordinator service is stopped, who is the transaction manager then?</p>
  
  <p><img src="https://i.stack.imgur.com/vfEKt.png" alt="enter image description here"></p>