我有一个问题让我转身3天。 我在这个transactioscope中使用事务范围我插入5个表中的5个值。正确插入前3个表并完全忽略第4个插入并正确插入第5个值而没有任何问题。不会出现异常,也不会发生回滚。
编辑:此问题仅发生在生产服务器上,并且不会经常发生。它发生的次数很少,而且大多数时候都能正常工作而没有任何问题。
注意:在我在同一台服务器上托管另一个应用程序后,此问题开始出现。
public void InsertStuff()
{
try
{
using(TransactionScope ts = new TransactionScope())
{
//perform insert 1
Tablel1.Insert();
//perform insert 2
Tablel2.Insert();
//perform insert 3 -
Tablel3.Insert();
//perform insert 4 - No insertion occur !!!!!
Tablel4.Insert();
//perform insert 5 - insertion works fine!!!!!
Tablel5.Insert();
ts.Complete();
}
}
catch(Exception ex)
{
throw ex;
}
}
答案 0 :(得分:0)
如果确实发生了异常,那么事务范围应该回滚。
为什么不通过自己抛出异常,或者通过在catch中显式调用ts.Rollback()来测试你的理论。
答案 1 :(得分:0)
事务或程序流看起来没有任何问题。检查
编程的内容Tablel4.Insert();
程序/计算机可以通过自己做一些神奇的事情。我们经常犯错但却没有注意到。我们可以建议可能性,但是你可以仔细检查你的逻辑或发布该代码段,如果想要其他人看看。
不会发生异常,因为可能存在逻辑错误,而不是某些编译或语法