2013-05-23 2 views
0

두 개의 서로 다른 WCF 서비스를 호출하는 Windows 서비스가 있으며 두 서비스 모두 동일한 트랜잭션 아래에 있어야하는 두 가지 다른 작업을 수행합니다. 즉, 두 서비스 모두 통과해야하거나 둘 다 실패해야합니다.WCF의 트랜잭션

Windows 서비스에서 트랜잭션을 시작하고 의도적으로 두 번째 WCF 서비스 호출을 실패했지만 놀랍게도 작업이 롤백되지 않았습니다.

여기에 뭐가 잘못 되었나요?

+0

주석이되어야한다, 즉 우리가 할 수 없기 때문에

  • wcfHttpBinding 서비스 방법은, 당신은 몇 가지 코드가 커밋 다시 거래를 압연, 개방에 관한 게시 할 수 있습니다, 트랜잭션 내에서 작동합니다 도움없이. – nvoigt

  • 답변

    1
    1. 귀하의 WCF 서비스 작업은 트랜잭션을 지원해야 당신의 WCF 서비스에서 사용하는 바인딩 [TransactionFlow(TransactionFlowOption.Allowed)]
    2. 주석해야합니다. 예 : 이 [OperationBehavior(TransactionScopeRequired=true)]
    +0

    클라이언트에서 트랜잭션을 전달하는 경우에도 특성을 추가해야합니다. – CSharped

    +0

    예, 지정해야합니다. – aquaraga

    +0

    또한 다음과 같이 추가해야합니다 : [OperationBehavior (TransactionScopeRequired = true) – sexta13