.net TransactionScope:情况好转了吗?
当TransactionScope第一次出现时,我遇到了一些严重的问题,让它在我的开发机器(XP)和数据库服务器(WindowsServer2003)之间工作 当我进一步研究它时,这似乎是一个棘手且广泛存在的问题,在生产中有可能成为一个令人头痛的问题,因此我决定不以这种方式处理事务(尽管我非常喜欢语法,并且我真的希望它能工作) 这些问题是否仍然存在,或者使用起来是否安全?你现在是否经常使用,没有问题 非常感谢.net TransactionScope:情况好转了吗?,.net,asp.net,transactions,transactionscope,.net,Asp.net,Transactions,Transactionscope,当TransactionScope第一次出现时,我遇到了一些严重的问题,让它在我的开发机器(XP)和数据库服务器(WindowsServer2003)之间工作 当我进一步研究它时,这似乎是一个棘手且广泛存在的问题,在生产中有可能成为一个令人头痛的问题,因此我决定不以这种方式处理事务(尽管我非常喜欢语法,并且我真的希望它能工作) 这些问题是否仍然存在,或者使用起来是否安全?你现在是否经常使用,没有问题 非常感谢 注意:现在已经有很长时间了,但我认为问题与Distribute Transaction
注意:现在已经有很长时间了,但我认为问题与Distribute Transaction Coordinator有关。我摆弄了很长一段时间,一直没能让它工作 Rick Strahl有一篇关于事务范围和LINQ to SQL的文章。它的上下文更像LINQ到SQL,但我认为有一些原则可以帮助您解决问题 编辑:为了更具体地回答您的问题,以下是Strahl对TransactionScope的看法: 传统上,TransactionScope是分布式事务协调器(DTC)的.NET包装器,但其功能有所扩展。一个问题是DTC在资源使用方面相当昂贵,它要求DTC服务在机器上实际运行(另一个在客户端安装上特别麻烦的服务) 但是,对TransactionScope和SQL Server客户端驱动程序的最新更新使您可以使用TransactionScope类及其提供的易用性,而无需DTC,只要您针对单个数据库和单个一致的连接字符串运行即可
我已经使用TransactionScope一年多了,没有任何问题。但是,该应用程序是一个内部应用程序,用户数量非常少。此外,数据库和应用程序驻留在同一台服务器上 以下是有关TransactionScope的一些信息以及在何处查找更多信息: 无论何时创建TransactionScope对象,它都会启动一个轻量级事务。然后,只要您使用支持轻量级事务的单个连接/资源,资源管理器就会以非常好的性能尽可能少的消耗资源来处理事务。在事务作用域中添加第二个连接/资源时,事务管理器将自动升级为OleTx事务管理器,该事务管理器可以使用COM+DTC技术处理分布式事务。对于不支持轻量级事务(如SQL Server 7/2000、Oracle和其他RDBMS)的资源管理器的单个连接,也会发生这种情况 这里有两个资源可以帮助您: “Microsoft Windows Server 2003 Service Pack 1(SP1)和Microsoft Windows XP Service Pack 2(SP2)包含许多与安全相关的更新和更改。其中一些更改会影响Microsoft分布式事务协调器(MSDTC)服务。” 及 Juval Lowy的系统白皮书。交易:
关于TransactionScope,仍然存在一些问题。在我当前的项目中,我们不定期地遇到“无法在分布式事务中登记”异常和TransactionDoutException异常。这两个例外都与TransactionScope相关。两种例外情况的一种解决方法是使用单个oracle连接(当然,如果适用)。 请阅读以下内容:
有关性能影响的信息,请阅读我的帖子:+1:但要清楚,您在这里使用的是Oracle,对吗?我想知道这是否是Oracle特有的。