根据我的阅读,为了在 .NET 中使用 TransactionScope,您需要运行 Windows 中的分布式事务协调器服务。我有那个服务关掉,并且我的应用程序似乎运行相同并且回滚事务没有问题。
我错过了什么吗?它如何能够发挥作用呢?我正在运行 Windows 7 并在 Visual Studio 2010 上运行 Web 应用程序。
更现代的 Windows 版本在内核中具有迷你 DTC 版本。它不是分布式的,但使用相同的 API - 但它只能处理每个事务范围的一个资源。
TransactionScope 在开始时使用它,然后在添加第二个资源时将事务“提升”到真正的 DTC(在您的情况下,资源是数据库连接)。因此,只要您的用例很简单,您就可以避免 DTC 分布式部分的(高)开销,并且可以在不运行服务的情况下工作。
有关内核事务管理器的更多信息,请访问http://en.wikipedia.org/wiki/Kernel_Transaction_Manager http://en.wikipedia.org/wiki/Kernel_Transaction_Manager
MS 添加它的另一个原因是 NTFS 具有事务性,并且它需要确保 DTC 可用。
http://www.codeguru.com/cpp/article.php/c18309/ http://www.codeguru.com/cpp/article.php/c18309/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)