我正在使用 System.Transanction
和 TransanctionCompleted
事件来检测中止的交易。
我如何找出它失败的原因?是否有检测错误详细信息的方法?
最佳答案
你可以捕获 System.Transactions.TransactionException关于您的交易方式
try
{
//Create the transaction scope
using (TransactionScope scope = new TransactionScope())
{
//Register for the transaction completed event for the current transaction
Transaction.Current.TransactionCompleted += new TransactionCompletedEventHandler(Current_TransactionCompleted);
// proces the transaction
}
}
catch (System.Transactions.TransactionAbortedException ex)
{
Console.WriteLine(ex);
}
catch (System.Transactions.TransactionException ex)
{
Console.WriteLine(ex);
}
catch
{
Console.WriteLine("Cannot complete transaction");
throw;
}
交易完成事件处理器
static void Current_TransactionCompleted(object sender, TransactionEventArgs e)
{
Console.WriteLine("A transaction has completed:");
Console.WriteLine("ID: {0}", e.Transaction.TransactionInformation.LocalIdentifier);
Console.WriteLine("Distributed ID: {0}", e.Transaction.TransactionInformation.DistributedIdentifier);
Console.WriteLine("Status: {0}", e.Transaction.TransactionInformation.Status);
Console.WriteLine("IsolationLevel: {0}", e.Transaction.IsolationLevel);
}
关于c# - 事务中止时如何获取错误详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998989/