2013-05-23 2 views
0

У меня есть служба Windows, вызывающая две различные службы WCF, обе службы выполняют две разные операции, которые должны быть под одной и той же транзакцией, что означает, что оба должны пройти или оба должны потерпеть неудачу.Сделки в WCF

Я начал транзакцию в службе Windows и целенаправленно отказался от второго вызова службы WCF, но, к моему удивлению, операции не возвращались.

Я делаю что-то не так здесь?

+0

Вы можете опубликовать некоторый код относительно открытия, совершения и откат транзакции, потому что мы не сможем помогите вам. – nvoigt

ответ

1
  1. Ваши сервисные операции WCF должны быть аннотированный с [TransactionFlow(TransactionFlowOption.Allowed)]
  2. Связывание используется вашей службой WCF должны поддерживать транзакции. Например; wcfHttpBinding
  3. Метод службы должны работать в рамках транзакции, то есть она должна быть аннотированный с [OperationBehavior(TransactionScopeRequired=true)]
+0

Обязательно добавить атрибут, даже если мы передаем транзакцию с клиента – CSharped

+0

Да, это необходимо указать. – aquaraga

+0

Вы также должны добавить следующее: [OperationBehavior (TransactionScopeRequired = true] – sexta13