如何在C#中使用TransactionScope?
我正在尝试使用TransactionScope,但继续获得下面的例外.
如果这很重要,应用程序将在与数据库不同的计算机上运行.我正在使用SQL Server 2005.
using (TransactionScope tsTransScope = new TransactionScope()) { //Do stuff here tsTransScope.Complete(); } 编辑 我根据反馈做了一些改变.现在我收到这个错误:
解 以下是客户端上的属性: 以下是服务器上的属性: 解决方法
您需要按照此
Microsoft TechNet Article中的说明启用网络DTC访问.可能必须在数据库和应用程序服务器上进行此更改.通常DTC已经打开数据库服务器,所以我先看看应用程序服务器.
以下是我们使用的屏幕截图,但“允许远程管理”选项除外: 我没有遇到你现在遇到的HRESULT E_Fail问题,但是这篇文章于XP SP2 and transactions提出了这个有趣的建议:
最后,虽然不是特定于您的问题,但是关于使用TransactionScope类的一个非常重要的事情是它的默认设置是使用Transaction Isolation Level of Serializable. Serializable是最严格的隔离级别,坦率地说它被选为默认值令人惊讶.如果您不需要这种级别的锁定,我强烈建议在实例化TransactionScope时将隔离级别设置为限制较少的选项(ReadCommitted): var scopeOptions = new TransactionOptions(); scopeOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; scopeOptions.Timeout = TimeSpan.MaxValue; using (var scope = new TransactionScope(TransactionScopeOption.Required,scopeOptions)) { // your code here } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |