Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在事务中止时获取错误详细信息_C#_Transactions - Fatal编程技术网

C# 如何在事务中止时获取错误详细信息

C# 如何在事务中止时获取错误详细信息,c#,transactions,C#,Transactions,我正在使用System.Transanction和Transanction completed事件检测中止的事务 我如何找出失败的原因?是一种检测错误详细信息的方法吗?您可以了解您的事务处理方法 try { //Create the transaction scope using (TransactionScope scope = new TransactionScope()) { //Register for the transaction comple

我正在使用
System.Transanction
Transanction completed
事件检测中止的事务

我如何找出失败的原因?是一种检测错误详细信息的方法吗?

您可以了解您的事务处理方法

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);
}

谢谢,我的意思是在transaction completed事件中获取错误详细信息,因为我只能访问该事务,但由我的代码决定是否提交/中止该事务。再次感谢。您必须在TransactionScope调用方法上执行此操作。