1

Microsoft Distributed Transaction Coordinator (MSDTC) 관련 문제가있는 것 같습니다.이 MSDTC 구성 문제입니까?

시나리오

나는 하나의 범위에 TransactionScope에와 함께 사용하고는 다른 서버에 두 개의 서로 다른 데이터베이스 안타 (예를 들어, DB_A Windows Server 2008을 실행하는 Windows Server 2003 및 DB_B를 실행). 하나의 데이터베이스는 Entity Framework 4.0을 사용하고 다른 데이터베이스는 일반 ADO.NET API를 사용하여 액세스합니다.

내 개발 컴퓨터 (WinXP 실행)에서 응용 프로그램을 실행할 때 두 연결을 정확하게 커밋하고 롤백합니다. 그러나 응용 프로그램을 실행할 때 다른 서버 (예 : Windows Server 2003을 실행하는 WAS_A)에 배포하면 올바르게 커밋되지만 예외 인 경우 두 서버에서 데이터베이스 작업이 롤백되지 않습니다.

WAS_A에 MSDTC 구성 문제가 있다고 생각했습니다. 그래서 MSDTC -> 보안 구성으로 가서 사용 가능한 모든 옵션을 확인했습니다 (이전에 다른 컴퓨터에서했던 것처럼). 그러나 여전히 나는 같은 문제에 직면하고있다.

전문가의 조언을 구하십시오. :)

답변

0

나는 당신이 Enabling Transaction Flow을 들여다 볼 필요가 있다고 믿는다. 특히, TransactionScope and WCF Services에 설명 된대로 하나가 다른 전체를 오류 및 수있는 방법을 살펴 :

두 번째 WCF 서비스 호출에 오류가 다시 이전의 WCF 서비스 호출에서 변경 한 롤링되지 않았다

...

  • 당신은으로 바인딩 구성 : 클라이언트에서 주위 트랜잭션을 생성하고이 당신의 WCF 서비스에서 사용되는 것을 보장하기 위해 ...

기사는 다음 단계를 자세히에서

  • 선택적으로 Transaction Binding *
  • 로 연결 문자열을 업데이트 [OperationBehavior(TransactionScopeRequired)]

  • 와 함께 귀하의 방법을 장식 [TransactionFlow(TransactionFlowOption)]
  • 와 귀하의 인터페이스를 장식 * 참고 : 이것은 내 의견으로는 선택 사항입니다.

  • 관련 문제