Więcej nowoczesnych wersji systemu Windows ma mini wersję DTC w jądrze. Nie jest dystrybuowany, ale używa tego samego interfejsu API - ale może obsługiwać tylko jeden zasób dla każdego zakresu transakcji.
TransactionScope używa tego na początku, a następnie "promuje" transakcję do prawdziwego DTC w momencie dodania drugiego zasobu (zasobem w twoim przypadku jest połączenie z bazą danych). Tak więc, o ile twój przypadek użycia jest równy, unikasz (wysokiego) narzutów z DYSTRYBUCJI części DTC i możesz pracować bez uruchomionej usługi.
Więcej informacji o Kernel Transaction Managger można znaleźć na http://en.wikipedia.org/wiki/Kernel_Transaction_Manager
MS dodaje go również dlatego, że dostał transakcyjny NTFS i potrzebne, aby upewnić DTC jest aavailable.
http://www.codeguru.com/cpp/article.php/c18309/
DTC jest wymagane, o ile mi wiadomo, kiedy transakcja musi przekroczyć pewnych granic. Na przykład, wydaje mi się, że potrzebujesz go do transakcji między dwiema bazami danych na komputerze lokalnym lub do eskalacji transakcji do zdalnego serwera. Nie mam twardych dowodów/linków, więc zostawię to jako komentarz do zbadania zamiast odpowiedzi. Mam nadzieję, że to pomoże. – Smudge202