从我正在阅读的内容,为了在.NET中使用TransactionScope,您需要运行
Windows中的分布式事务处理协调器服务.我的服务已关闭,我的应用程序似乎运行相同,回滚事务没有问题.
我错过了什么吗?怎么能工作?我正在运行Windows 7,并在VisualStudio 2010上运行webapp.
解决方法
更现代版本的Windows在内核中有一个迷你DTC版本.它不是分发但使用相同的API – 但它只能处理每个事务范围的一个资源.
TransactionScope首先使用它,然后在添加第二个资源的那一刻将事务“促进”到真正的DTC(在你的情况下是资源是数据库连接).因此,只要您的用例很简单,您就可以避免DTC的DISTRIBUTED部分的(高)开销,并且可以在不运行服务的情况下工作.
有关内核事务管理器的更多信息可以在http://en.wikipedia.org/wiki/Kernel_Transaction_Manager找到
MS添加它也是因为NTFS获得了交易,并且需要确保DTC是可用的.