从我读什么,为了在.NET中使用的TransactionScope,您需要在Windows Distributed Transaction Coordinator服务在运行。我有一个服务关闭,和我的应用程序似乎运行相同,并回滚事务没有问题。TransactionScope需要DTC服务吗?
我错过了什么吗? 它是如何工作的?我运行Windows 7和运行web应用程序关闭的VisualStudio 2010
从我读什么,为了在.NET中使用的TransactionScope,您需要在Windows Distributed Transaction Coordinator服务在运行。我有一个服务关闭,和我的应用程序似乎运行相同,并回滚事务没有问题。TransactionScope需要DTC服务吗?
我错过了什么吗? 它是如何工作的?我运行Windows 7和运行web应用程序关闭的VisualStudio 2010
更现代的版本在内核迷你DTC版本。它不是分布式的,但使用相同的API - 但它只能处理每个事务作用域的一个资源。
的TransactionScope使用,在一开始,然后是“促进”交易的真正的DTC的时刻添加第二个资源(资源在你的情况是一个数据库连接)。所以,只要你的使用情况是ismple,你避免DTC的分布式部分(高)的开销,并且可以在不运行的服务工作。
关于内核事务Managger更多信息可以在http://en.wikipedia.org/wiki/Kernel_Transaction_Manager
找到MS加也因为NTFS了交易,它需要确保一个DTC是aavailable。
MSDTC进入剧中唯一的,如果你有不同的连接
多个事务这样,答案是:
这取决于!
真的吗?如果你清楚注明,比一个TranScope你使用一个以上的连接,然后我更新的答案,否则 - 它看起来像你使用每笔交易范围1个连接 - 这种情况下不涉及MSDTC – 2012-01-31 08:20:10
DTC是必需的,据我所知,当你的交易需要跨越一定的边界。例如,我相信您需要它在本地计算机上的两个数据库之间进行事务处理,或者将事务升级到远程服务器。我没有硬性的证据/链接,所以我只是留下这个作为你的意见调查,而不是作为答案。希望能帮助到你。 – Smudge202 2012-01-31 07:15:31