从我正在阅读的内容来看,为了在.NET中使用TransactionScope,需要运行Windows中的Distributed Transaction Coordinator服务。我已将服务关闭,并且我的应用程序似乎正在运行,并且回滚事务没有问题。

我想念什么吗? 它如何工作? 我正在运行Windows 7,并在VisualStudio 2010上运行了webapp。

最佳答案

Windows的更现代版本在内核中具有迷你DTC版本。它不是分布式的,但使用相同的API-但每个事务作用域只能处理一个资源。

TransactionScope首先使用它,然后在添加第二个资源时将事务“提升”为实际DTC(在您的情况下,该资源是数据库连接)。因此,只要您的用例足够小,就可以避免DTC的DISTRIBUTED部分的(高)开销,并且可以在不运行服务的情况下工作。

有关内核事务管理器的更多信息,请访问http://en.wikipedia.org/wiki/Kernel_Transaction_Manager

MS也添加它是因为NTFS具有事务性,并且需要确保DTC可用。

http://www.codeguru.com/cpp/article.php/c18309/

09-28 14:43