【发布时间】:2014-06-02 08:52:30
【问题描述】:
我有一些在简单的 TransactionScope 中执行的业务逻辑:
using (var scope = new TransactionScope())
{
// does some logic.
// then some more...
scope.Complete();
}
在执行期间发生 ADO 异常,并且正在处理事务。
与此同时,异常在上游被进一步捕获,我尝试通过另一个连接将其记录到我的数据库中。
此时我收到另一个错误提示 The operation is not valid for the state of the transaction.
哎呀!
现在我可以看到我可以使用IsolationLevel 来改变我的交易交互方式,但这样做是否正确?我应该使用哪个?
【问题讨论】:
-
听起来您的所有代码都在大 DTC 事务中运行,对吗?
-
不确定您的意思?如上所述..在此特定执行期间,我明确创建的唯一事务如上所述。
-
是的,但是多个连接会导致分布式事务,您提到了针对数据库的第二个连接
-
在记录时抑制事务是否解决了您的问题?
标签: c# ado.net transactionscope