C# 如何在ASP.NET中用web应用程序实现两阶段提交?

C# 如何在ASP.NET中用web应用程序实现两阶段提交?,c#,asp.net,sql-server,asp.net-mvc,sql-server-2012,C#,Asp.net,Sql Server,Asp.net Mvc,Sql Server 2012,我想在我的项目中添加两阶段提交功能。我在谷歌上搜索关于两阶段提交的内容,了解其概念,但无法理解如何实现它。因此,请解释我如何在我的项目中实现它,或建议我任何解释如何实现它的流程的链接。我使用MVC在ASP.NET中开发了该项目web应用程序 提前感谢。您可以使用System.Transactions程序集中的TransactionScope类 基本上,您可以定义一个涉及一个或多个资源(数据库、事务感知WCF服务等)的事务,框架将处理其余的事务。这可能意味着什么也不做(即数据库可以处理整个事务),

我想在我的项目中添加两阶段提交功能。我在谷歌上搜索关于两阶段提交的内容,了解其概念,但无法理解如何实现它。因此,请解释我如何在我的项目中实现它,或建议我任何解释如何实现它的流程的链接。我使用MVC在ASP.NET中开发了该项目web应用程序


提前感谢。

您可以使用System.Transactions程序集中的
TransactionScope

基本上,您可以定义一个涉及一个或多个资源(数据库、事务感知WCF服务等)的事务,框架将处理其余的事务。这可能意味着什么也不做(即数据库可以处理整个事务),或者在需要时升级到DTC事务

这是一篇解释交易范围的好文章


2件。。。在什么之间?两个数据库?一个web服务和一个数据库?它与Oracle两阶段提交机制不同还是相同,因为我想实现相同的机制。我真的很困惑。不是Oracle专家,但我认为它是相同的。你不必实现它,这是事务协调器的工作。如果我们看上面的示例,如果我添加了一个服务器,那么我需要在app.config中定义一个连接字符串。只需查看此链接,让我知道两者都是相同的。是的,他们在寻找你有价值的重播。我可以用上面的代码开始实现吗,或者有其他方法吗。
try
{
    using (var db1 = new SqlConnection(connectionString1))
    {
        // use the resource
    }

    using (var db2 = new SqlConnection(connectionString2))
    {
        // use the resource
    }

    // you can use other resources...

    // Don't forget this
    t.Complete();
}
catch (Exception ex)
{
    // handle the error. No need to rollback
}
}