Общие сведения о транзакциях Windows Communication Foundation
Транзакции обеспечивают способ группировки набора действий или операций в одну неделимую единицу выполнения. Транзакция является коллекцией операций с перечисленными ниже свойствами.
Атомарность. Благодаря данному свойству все обновления, завершенные в отдельной транзакции, либо фиксируются и становятся стабильными, либо отменяются и возвращаются к предыдущему состоянию с помощью отката.
Согласованность. Данное свойство гарантирует, что все изменения, внесенные при транзакции, представляют собой трансформацию из одного состояния в другое. Например, транзакция, передающая деньги с текущего счета на сберегательный счет, не изменяет общее количество денег на банковском счете.
Изоляция. Данное свойство предохраняет транзакцию от просмотра несохраненных изменений, относящихся к другим параллельным транзакциям. Изоляция обеспечивает отвлечение параллелизма, а также невозможность непредвиденного влияния одной транзакции на выполнение другой транзакции.
Устойчивость. Данное свойство обозначает, что при однократной фиксации обновления в управляемых ресурсах (такие как запись базы данных) станут устойчивыми к сбоям.
Windows Communication Foundation (WCF) предоставляет широкий набор функций, позволяющих создавать распределенные транзакции в приложении веб-службы.
WCF реализует поддержку протокола WS-AtomicTransaction (WS-AT), который позволяет приложениям WCF передавать транзакции для взаимодействия приложений, таких как совместимые веб-службы, созданные с помощью сторонних технологий. WCF также реализует поддержку протокола OLE Transactions, который можно использовать в сценариях, где для включения потока транзакций не требуются функции взаимодействия.
Для настройки привязок можно использовать файл конфигурации приложения, позволяющий включать или отключать передачу транзакций, а также задавать необходимый протокол транзакций для привязки. Кроме того, можно задать время ожидания транзакций на уровне службы с помощью файла конфигурации. Дополнительные сведения см. в разделе "Включение потока транзакций".
Атрибуты транзакции в пространстве имен System.ServiceModel позволяют выполнять перечисленные ниже действия.
Настраивать время ожидания транзакций и фильтрацию уровня изоляции с помощью атрибута ServiceBehaviorAttribute.
Включать функциональность транзакций и настраивать поведение при завершении транзакции с помощью атрибута OperationBehaviorAttribute.
Для требования, разрешения или запрещения потока транзакций используйте атрибуты ServiceContractAttribute и OperationContractAttribute метода контракта.
Дополнительные сведения см. в разделе "Атрибуты транзакций ServiceModel".