奇怪-内部(日志记录)事务范围中的RequiresNew应该可以工作。
try
{
using (TransactionScope tsOuter = new TransactionScope(TransactionScopeOption.Required))
{
DAL1.Txn1();
using (TransactionScope tsLogging = new TransactionScope(TransactionScopeOption.Suppress))
{
DAL2.Txn2();
tsLogging.Complete();
}
throw new Exception("Big Hairy Exception");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
http://msdn.microsoft.com/en-us/library/ms973865.aspx
,引用如下
TransactionScope非常智能地管理事务升级—它们将使用(例如,只有在事务跨越多个数据库或资源时才会使用DTC—例如SQL和MSMQ)。它们还与sql2005+轻量级事务一起工作,因此到同一数据库的多个连接也将在一个事务中进行管理,而不会产生DTC的开销。
应用程序不应直接
利用事务编程
提交事务谓词,或
中的MessageQueueTransaction()对象
System.Messaging命名空间,何时
处理MSMQ。这些机制
交易管理经办人
系统事务,并结合
系统事务的使用
交易会导致不一致