2017-10-12 13 views
0

최근 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에 설명 된대로 :-(

답변

0

푸른 SQL 데이터베이스는 현재 분산 트랜잭션을 지원하지 않습니다. 가상 시스템에서 실행중인 SQL Server 인스턴스에 데이터베이스를 배포 Microsoft 분산 트랜잭션 코디네이터 (MSDTC)를 사용합니다.

+0

내가 아직에 MSDTC 트랜잭션을 지원 애저 SQL 데이터베이스 동의, 자세한 내용을 알고 아래를 참조하십시오 T-SQL,하지만 그들은 시스템을 지원하고있다. 엠. 탄력적 인 거래의 이름으로 거래. 여기를 참조하십시오 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-transactions-overview – Kavi