Azure SQL不支持弹性事务
问题描述:
最近我们正在将我们的SQL Server数据库迁移到Azure SQL数据库,但它不支持事务,即使我们构建我们的Web应用程序以按照Microsoft文档中给出的指导目标.net framework 4.6.1 here。我们在同一个数据库中使用MSDTC事务而不是共享数据库,原因是什么?我在这里是否缺少配置设置?Azure SQL不支持弹性事务
实际上,我没有收到任何错误,但事务不起作用,也没有发生回滚,允许保存部分数据。
当我在Azure SQL DB检查事务时,它显示当时没有发生事务。与我的本地数据库相同的代码可以很好地工作,我可以看到当前的事务正在运行,事务在未提交时回滚。
以下是详细信息。
我已经在VisualStudio中将目标框架设置为4.6.2并且在我的web.config中更新了相同的内容。 示例代码:
using (var scope = new TransactionScope())
{
using (var aoContext = new AOCrowdFundEntities())
{
//do somthing
aoContext.SaveChanges();
throw new Exception();
scope.Complete();
}
}
当我有引发错误和运行下面的查询来查看当前交易之前断点,它显示一个空列表。
即使我在不提交事务的情况下抛出错误,数据也会保存在Azure数据库中。 :-(
答
Azure的SQL数据库目前不支持在此documentation page解释分布式事务。要使用Microsoft分布式事务协调器(MSDTC),在虚拟机上运行的SQL Server实例部署数据库。
答
我错过了删除从中推出了支持MSDTC事务数据库连接字符串的设置(招募=假)。参见下面了解更多的细节,
what is Enlist=false means in connection string for sql server?
我同意Azure的SQL数据库不还支持MSDTC事务T-SQL,但他们支持Syste米以弹性交易的名义进行交易。看到这里https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-transactions-overview – Kavi