Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
WF bietet Unterstützung die Beteiligung an System.Transactions-Transaktionen mithilfe der TransactionScope-Aktivität, um eine transaktive Arbeitseinheit festzulegen. Während das System.Transactions.TransactionScope-Objekt explizit abgeschlossen werden muss, ruft die System.Activities.Statements.TransactionScope-Aktivität den Abschluss implizit auf, wenn die Transaktion erfolgreich abgeschlossen wurde. Alle Aktivitäten, die in der BodyTransactionScope Aktivität enthalten sind, nehmen an der Transaktion teil. WF kann Transaktionen durch die Verwendung der TransactedReceiveScope-Aktivität in einen Workflow fließen lassen. Wie die TransactionScope-Aktivität sind alle in Body enthaltenen Aktivitäten an der Transaktion beteiligt. WF stellt sicher, dass Aktivitäten, die von Transaction.Current abhängig sind, sowohl mit TransactionScope als auch mit TransactedReceiveScope funktionieren. Wenn die vom System bereitgestellten Aktivitäten nicht alle Anforderungen erfüllen, können benutzerdefinierte Aktivitäten mithilfe der RuntimeTransactionHandle erweiterten Ablauf- und Transaktionssteuerungsszenarien erstellt werden.
Im folgenden Ausschnitt wird ein Workflow aus einer Sequence-Aktivität erstellt, die über untergeordnete Aktivitäten, einschließlich einer TransactionScope-Aktivität, verfügt. Die Body-Aktivitäten von TransactionScope werden unter der Transaktion ausgeführt, die von der TransactionScope-Aktivität initialisiert wurde.
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" },
}
};
}
Weitere Informationen finden Sie unter Verwenden von TransactedReceiveScope, finden Sie unter Flowing Transactions into and out of Workflow Services.