Freigeben über


Schachteln von TransactionScope innerhalb eines Diensts

Dieses Thema gilt für Windows Workflow Foundation 4.

Dieses Beispiel besteht aus zwei Szenarien, in denen veranschaulicht wird, wie die TransactionScope-Aktivitätsinstanzen innerhalb eines Diensts behandelt werden. Zunächst wird die Transaktion mit der TransactionScope-Aktivität initiiert, um eine neue Transaktion auf dem Client zu erstellen, und mit TransactedReceiveScope, um die Lebensdauer von der Transaktion auf dem Server zu empfangen und zu bewerten. Das erste Szenario innerhalb des Diensts führt eine sekundäre TransactionScope-Aktivität aus, um die Schachtelung der TransactionScope-Aktivitäten innerhalb des Diensts zu veranschaulichen. Das zweite Szenario veranschaulicht, wie Timeouts innerhalb der geschachtelten TransactionScope-Aktivitäten beachtet werden.

Clientanwendung

Die Clientanwendung führt einen Workflow aus, der TransactionScope-Aktivität startet, die verteilte Transaktions-ID ausgibt, eine Meldung an den Server sendet, die Transaktion übertragt, die Antwort empfängt, die verteilte Transaktions-ID erneut ausgibt und den Vorgang dann abschließt. Dies wird für jedes Dienstszenario einmal ausgeführt.

Serveranwendung

Das Serverprojekt wird in WorkflowServiceHost gehostet, der den Endpunkt erstellt, der eine Überwachung auf die Meldung des Clients hin übernehmen soll. Der Workflow basiert auf dem TransactedReceiveScope, der die übertragene Transaktion vom Client empfängt, die verteilte Transaktions-ID ausgibt und dann eine zweite TransactionScope-Aktivität ausführt. Im ersten Szenario wird die Transaktion erfolgreich abgeschlossen. Im zweiten Szenario ist der Text der TransactionScope-Aktivität ist eine Verzögerung mit einer Länge von fünf Sekunden, und das Timeout für die Transaktion wurde auf zwei Sekunden festgelegt. Wenn das Timeout der Transaktion erreicht wird, wird die Transaktion abgebrochen.

So führen Sie das Beispiel aus

  1. Öffnen Sie die Projektmappe "TransactionServiceExample.sln" in Visual Studio 2010.

  2. Um die Projektmappe zu erstellen, drücken Sie F6, oder wählen Sie Projektmappe erstellen im Menü Erstellen aus.

  3. Sobald die Erstellung erfolgreich war, klicken Sie mit der rechten Maustaste auf die Projektmappe, und wählen Sie Startprojekte festlegen aus. Wählen Sie im Dialogfeld Mehrere Startprojekte aus, und stellen Sie sicher, dass die Aktion für beide Projekte Starten ist.

  4. Drücken Sie F5, oder wählen Sie im Menü Debuggen die Option Debuggen starten. Zur Ausführung ohne Debugging drücken Sie STRG+F5 oder wählen Starten ohne Debugging im Menü Debuggen.

Ee834526.Important(de-de,VS.100).gif Hinweis:
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.

<Installationslaufwerk>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.

<Installationslaufwerk>:\WF_WCF_Samples\WF\Basic\Transactions\TRSCompostability