최근 SQL Server 데이터베이스를 Azure SQL 데이터베이스로 마이그레이션하지만 Microsoft 문서에서 제공하는 지침에 따라 .net 프레임 워크 4.6.1을 대상으로하는 웹 응용 프로그램을 빌드하더라도 거래를 지원하지 않습니다 here. MSDTC 트랜잭션을 공유 데이터베이스가 아닌 동일한 데이터베이스에서 사용하는 이유는 무엇입니까? 여기에 구성 설정이 누락 되었습니까?Azure SQL은 탄력적 인 트랜잭션을 지원하지 않습니다
실제로는 오류가 발생하지 않지만 트랜잭션이 작동하지 않고 롤백이 발생하지 않아 부분 데이터를 저장할 수 있습니다.
Azure SQL DB에서 트랜잭션을 확인할 때 트랜잭션이 발생하지 않았 음을 보여줍니다. 동일한 코드가 로컬 데이터베이스와 잘 작동하므로 커밋되지 않은 트랜잭션을 롤백하고 실행중인 트랜잭션을 볼 수 있습니다.
다음은 자세한 내용입니다.
VisualStudio에서 대상 프레임 워크를 4.6.2로 설정하고 내 web.config에서 동일한 프레임 워크를 업데이트했습니다. 샘플 코드는 : 나는 오류를 던지고 현재의 트랜잭션 (transaction)를 보려면 다음 쿼리를 실행하기 전에 중단이있을 때
using (var scope = new TransactionScope())
{
using (var aoContext = new AOCrowdFundEntities())
{
//do somthing
aoContext.SaveChanges();
throw new Exception();
scope.Complete();
}
}
, 그것은 빈 목록을 보여줍니다.
트랜잭션을 커밋하지 않고 오류가 발생하더라도 데이터는 Azure DB에 저장됩니다. 이 documentation page에 설명 된대로 :-(
내가 아직에 MSDTC 트랜잭션을 지원 애저 SQL 데이터베이스 동의, 자세한 내용을 알고 아래를 참조하십시오 T-SQL,하지만 그들은 시스템을 지원하고있다. 엠. 탄력적 인 거래의 이름으로 거래. 여기를 참조하십시오 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-transactions-overview – Kavi