Документация по распределенным транзакциям в нескольких базах данных SQL Azure упоминается гостевая ОС для сред, в которых выполняется транзакция, должна иметь .NET 4.6.1. Это относится к функциям Azure и / или службам приложений?
Могут ли эластичные транзакции базы данных работать с функциями Azure и / или службами приложений?
Ответы (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
Это может быть не одно и то же. Взгляните, пожалуйста, на ссылку.
- person Sentinel; 15.08.2017
@Sentinel Я читал это и понимаю, что это одно и то же. Какая-то конкретная причина, по которой вы думаете, что это не так?
- person Mikhail Shilkov; 15.08.2017
Да - они говорят, что "гостевая ОС", изменяемая в Службах приложений, не поддерживается. Эта функция для изменения платформы .NET существует уже много лет, поэтому я предполагаю, что версия процесса IIS может не совпадать с версией платформы .NET, настроенной на машине.
- person Sentinel; 15.08.2017