Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net TransactionScope:情况好转了吗?_.net_Asp.net_Transactions_Transactionscope - Fatal编程技术网

.net TransactionScope:情况好转了吗?

.net TransactionScope:情况好转了吗?,.net,asp.net,transactions,transactionscope,.net,Asp.net,Transactions,Transactionscope,当TransactionScope第一次出现时,我遇到了一些严重的问题,让它在我的开发机器(XP)和数据库服务器(WindowsServer2003)之间工作 当我进一步研究它时,这似乎是一个棘手且广泛存在的问题,在生产中有可能成为一个令人头痛的问题,因此我决定不以这种方式处理事务(尽管我非常喜欢语法,并且我真的希望它能工作) 这些问题是否仍然存在,或者使用起来是否安全?你现在是否经常使用,没有问题 非常感谢 注意:现在已经有很长时间了,但我认为问题与Distribute Transaction

当TransactionScope第一次出现时,我遇到了一些严重的问题,让它在我的开发机器(XP)和数据库服务器(WindowsServer2003)之间工作

当我进一步研究它时,这似乎是一个棘手且广泛存在的问题,在生产中有可能成为一个令人头痛的问题,因此我决定不以这种方式处理事务(尽管我非常喜欢语法,并且我真的希望它能工作)

这些问题是否仍然存在,或者使用起来是否安全?你现在是否经常使用,没有问题

非常感谢


注意:现在已经有很长时间了,但我认为问题与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特有的。