TransactionScope 抛出异常。我正在使用 ASP.NET Core 和 Core 3.0。
我在 Windows 本地遇到以下问题:“此平台不支持分布式事务。”
我想同步两个数据库,并想使用 TransactionScope 在两个数据库中获得一致的状态。
当我使用 AppService 和 Azure Sql 将它部署到 Azure 时,它工作正常。
通常,当我使用 .net core 3.0 检查此链接时,它应该可以正常工作。 https://learn.microsoft.com/de-de/dotnet/api/system.transactions.transactionscope?view=netcore-3.0
希望有人能帮助我。
using (var scope = new TransactionScope())
{
-- database1
using (SqlConnection connection = new SqlConnection(connectionString_DB1))
{
using (System.Data.SqlClient.SqlCommand cmd = connection.CreateCommand())
{
....
connection.Open();
result = cmd.ExecuteNonQuery();
}
}
--database2
using (SqlConnection connection = new SqlConnection(connectionString_DB2))
{
using (System.Data.SqlClient.SqlCommand cmd = connection.CreateCommand())
{
....
connection.Open();
result = cmd.ExecuteNonQuery();
}
}
scope.Complete();
}
最佳答案
除了放置using
外,在using connection之后添加Close
方法调用。
我只是在使用 TransactionScope
时遇到同样的错误,同时显然连接到同一个数据库并放置 using
。大多数答案都说 Dispose
和 Close
是相同的,但似乎它们不是:从我从源代码中收集到的内容来看,Close
方法显式返回到池的连接,而我找不到用于 Dispose
的相同代码。
关于c# - TransactionScope 抛出异常 "This platform does not support distributed transactions.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60954904/