Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
WF poskytuje podporu pro účast v System.Transactions transakcích pomocí činnosti TransactionScope ke stanovení rozsahu transakční jednotky práce. System.Transactions.TransactionScope Aktivitu je třeba explicitně dokončit, zatímco System.Activities.Statements.TransactionScope implicitně zavolá dokončení na transakci při úspěšném dokončení. Všechny aktivity obsažené v Body aktivitě TransactionScope se účastní transakce. WF může transakce směrovat do pracovního postupu prostřednictvím aktivity TransactedReceiveScope. Podobně jako aktivita TransactionScope se jakákoli aktivita obsažená v Body transakci účastní. WF zajišťuje, aby aktivity závislé na Transaction.Current pracovaly s oběma TransactionScope a TransactedReceiveScope. Pokud aktivity poskytované systémem nevyřešují všechny požadavky, je možné vlastní aktivity sestavit pomocí RuntimeTransactionHandle možností povolit pokročilé scénáře řízení toku a transakcí.
V následujícím příkladu je sestaven workflow, který se skládá z činnosti Sequence, která obsahuje podřízené činnosti včetně činnosti TransactionScope. Aktivity BodyTransactionScope se provádějí v rámci transakce inicializované aktivitou TransactionScope.
static Activity ScenarioOne()
{
return new Sequence
{
Activities =
{
new WriteLine { Text = " Begin workflow" },
new TransactionScope
{
Body = new Sequence
{
Activities =
{
new WriteLine { Text = " Begin TransactionScope" },
new PrintTransactionId(),
new TransactionScopeTest(),
new WriteLine { Text = " End TransactionScope" },
},
},
},
new WriteLine { Text = " End workflow" },
}
};
}
Další informace o používání TransactedReceiveScope najdete v tématu Flowing Transactions into and out of Workflow Services.