Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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
Can";“弹性数据库事务”;是否使用Azure功能和/或应用程序服务?_Azure_Azure Sql Database_Azure Web App Service_Azure Functions - Fatal编程技术网

Can";“弹性数据库事务”;是否使用Azure功能和/或应用程序服务?

Can";“弹性数据库事务”;是否使用Azure功能和/或应用程序服务?,azure,azure-sql-database,azure-web-app-service,azure-functions,Azure,Azure Sql Database,Azure Web App Service,Azure Functions,跨多个SQL Azure数据库的文档提到运行事务的环境的来宾操作系统必须具有.NET 4.6.1。Azure功能和/或应用程序服务就是这样吗?应用程序服务(和功能)在.NET 4.7上运行: (2017年8月)应用程序服务(和功能)正在.NET 4.7上运行: (2017年8月)我刚刚使用以下代码在Azure Web App上测试了分布式事务。如果在invoke scope.Complete之前抛出异常,事务将回滚,记录将不会保存到表中。这证明Azure应用程序服务确实支持弹性数据库事务 u

跨多个SQL Azure数据库的文档提到运行事务的环境的来宾操作系统必须具有.NET 4.6.1。Azure功能和/或应用程序服务就是这样吗?

应用程序服务(和功能)在.NET 4.7上运行:

(2017年8月)

应用程序服务(和功能)正在.NET 4.7上运行:


(2017年8月)

我刚刚使用以下代码在Azure Web App上测试了分布式事务。如果在invoke scope.Complete之前抛出异常,事务将回滚,记录将不会保存到表中。这证明Azure应用程序服务确实支持弹性数据库事务

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection(azureSqlConnStrDb1))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(3)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection(azureSqlConnStrDb2))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into T2 values(4)");
        cmd2.ExecuteNonQuery();
    }

    throw new Exception("I am a exception");
    scope.Complete();
}

我刚刚使用以下代码在Azure Web App上测试了分布式事务。如果在invoke scope.Complete之前抛出异常,事务将回滚,记录将不会保存到表中。这证明Azure应用程序服务确实支持弹性数据库事务

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection(azureSqlConnStrDb1))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(3)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection(azureSqlConnStrDb2))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into T2 values(4)");
        cmd2.ExecuteNonQuery();
    }

    throw new Exception("I am a exception");
    scope.Complete();
}

这可能不是一回事。请看一下链接。@Sentinel我已经读过了,我的理解是它们是一样的。你认为不支持的具体原因是什么?是的,他们说不支持在应用程序服务上更改“来宾操作系统”。用于更改.NET framework的功能已经存在很久了,因此我假设IIS进程的版本可能与机器上配置的.NET framework版本不同,这可能是不同的。请看一下链接。@Sentinel我已经读过了,我的理解是它们是一样的。你认为不支持的具体原因是什么?是的,他们说不支持在应用程序服务上更改“来宾操作系统”。用于更改.NET framework的功能已经存在很久了,因此我假设IIS进程的版本可能与计算机上配置的.NET framework版本不同