【发布时间】:2010-01-07 14:08:23
【问题描述】:
我的代码是这样的
try
{
using (TransactionScope iScope = new TransactionScope())
{
try
{
isInsertSuccess = InsertProfile(account);
}
catch (Exception ex)
{
throw;
}
if (isInsertSuccess)
{
iScope.Complete();
retValue = true;
}
}
}
catch (TransactionAbortedException tax)
{
throw;
}
catch (Exception ex)
{
throw;
}
现在发生的情况是,即使我的值为 TRUE,TransactionAbortedException 异常也会随机发生,但数据会在 DB 中插入/更新。
知道出了什么问题吗?
【问题讨论】:
-
你为什么要声明三个名为
rethrow的变量而不用它们做任何事情?另外,为什么你有两个相同的catch块用于不同类型的异常? -
如果您遇到间歇性错误,问题可能不在于这段孤立的代码,而可能是与其他代码的集成引起的,例如数据库死锁。错误信息是什么意思?
-
@SLaks isInsertSuccess 值为 TRUE
标签: c# .net transactions