Могут ли эластичные транзакции базы данных работать с функциями Azure и / или службами приложений?

Документация по распределенным транзакциям в нескольких базах данных SQL Azure упоминается гостевая ОС для сред, в которых выполняется транзакция, должна иметь .NET 4.6.1. Это относится к функциям Azure и / или службам приложений?


person Sentinel    schedule 15.08.2017    source источник


Ответы (2)


Я только что протестировал распределенные транзакции в веб-приложении Azure, используя следующий код. Если я генерирую исключение до вызова 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();
}
person Amor    schedule 17.08.2017

Служба приложений (и функции) работают на .NET 4.7:

введите здесь описание изображения

(Август 2017 г.)

person Mikhail Shilkov    schedule 15.08.2017
comment
Это может быть не одно и то же. Взгляните, пожалуйста, на ссылку. - person Sentinel; 15.08.2017
comment
@Sentinel Я читал это и понимаю, что это одно и то же. Какая-то конкретная причина, по которой вы думаете, что это не так? - person Mikhail Shilkov; 15.08.2017
comment
Да - они говорят, что "гостевая ОС", изменяемая в Службах приложений, не поддерживается. Эта функция для изменения платформы .NET существует уже много лет, поэтому я предполагаю, что версия процесса IIS может не совпадать с версией платформы .NET, настроенной на машине. - person Sentinel; 15.08.2017