Asp.net应用程序中的分布式事务

时间:2011-02-25 08:43:22

标签: asp.net distributed-transactions

我们有一个企业应用程序,我们在一个事件序列中调用数据库1,调用Web服务然后调用数据库2。我们想将整个处理封装在一个事务中。在这种情况下实现分布式事务的最佳方法是什么?

环境:SQL 2008,ASP.Net 3.5

1 个答案:

答案 0 :(得分:2)

使用TransactionScope对象和不同的连接(每个数据库一个)。该交易将自动升级为分布式交易。

从MSDN页面上的示例:

    using (TransactionScope scope = new TransactionScope())
    {
        using (SqlConnection connection1 = new SqlConnection(connectString1))
        {
            // Opening the connection automatically enlists it in the 
            // TransactionScope as a lightweight transaction.
            connection1.Open();

            using (SqlConnection connection2 = new SqlConnection(connectString2))
            {
                // The transaction is escalated to a full distributed
                // transaction when connection2 is opened.
                connection2.Open();
            }
        }

        scope.Complete();
    }