Freigeben über


TransactedReceiveScope Klasse

Definition

Eine Aktivität, die die Lebensdauer einer Transaktion angibt, die von einer empfangenen Nachricht initiiert wird. Die Transaktion kann in den Workflow für die initiierende Nachricht fließen oder vom Verteiler erstellt werden, wenn die Nachricht empfangen wird.

public ref class TransactedReceiveScope sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class TransactedReceiveScope : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type TransactedReceiveScope = class
    inherit NativeActivity
Public NotInheritable Class TransactedReceiveScope
Inherits NativeActivity
Vererbung
TransactedReceiveScope
Attribute

Beispiele

Das folgende Beispiel zeigt, wie die TransactedReceiveScope Klasse in einer Sequence Aktivität verwendet wird.

return new Sequence
{
    Activities = 
    {
        new WriteLine { Text = "Service workflow begins." },

        new System.ServiceModel.Activities.TransactedReceiveScope
        {
            Variables = { requestMessage, replyMessage },
            Request = receive,
            Body = new Sequence
            {
                Activities =
                {
                    new WriteLine { Text = new InArgument<string>("Server side: Receive complete.") },
                    
                    new WriteLine { Text = new InArgument<string>(new VisualBasicValue<string>() { ExpressionText = "\"Server side: Received = '\" + requestString.toString() + \"'\"" }) },

                    new PrintTransactionInfo(),

                    new Assign<string>
                    {
                        Value = new InArgument<string>("Server side: Sending reply."),
                        To = new OutArgument<string>(replyMessage)
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Begin reply.") },

                    new SendReply
                    {
                        Request = receive,
                        Content = SendContent.Create(new InArgument<string>(replyMessage)),                                    
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Reply sent.") },
                },
            },
        },

        new WriteLine { Text = "Server workflow ends." },
    },
};

Hinweise

Mit TransactedReceiveScope der Aktivität können Sie die Lebensdauer der flussierten Transaktion steuern.

Warnung

Bei einer initiierenden TransactedReceiveScope Aktivität (eine TransactedReceiveScope Aktivität mit ReceiveCanCreateInstance festgelegtem trueWert) wird die Transaktion erstellt, bevor die Laufzeit mit der Ausführung der TransactedReceiveScope Aktivität beginnt. Diese Transaktion befindet sich nicht auf der Workflowaktivitätsebene, sondern in den zugrunde liegenden Persistenzebenen. Wenn die Ausführung des Workflows vor der TransactedReceiveScope Aktivität auf eine Persist Aktivität trifft, versucht die Laufzeit, unter der Umgebungstransaktion beizubehalten. Dieses Verhalten verursacht einen Block, bis die Transaktion abgeschlossen ist. Da die Workflowausführung den Body Abschnitt nicht erreicht hat, kann die Transaktion nicht abgeschlossen werden. Dieser Deadlock bewirkt, dass der Workflow nicht mehr reagiert, bis das Transaktionszeitüberschreitungsvorgang erfolgt. Wenn die Transaktion ausbricht, wird die neu erstellte Instanz abgebrochen.

Von Bedeutung

Es wird empfohlen, bei Verwendung von TransactedReceiveScope alle empfangenen Nachrichten im Workflow in TransactedReceiveScope-Aktivitäten zu platzieren.

Von Bedeutung

Wenn TransactedReceiveScope verwendet wird und Nachrichten in der falschen Reihenfolge ankommen, wird der Workflow abgebrochen, wenn versucht wird, die erste aus der Reihenfolge geratene Nachricht zu übermitteln. Sie müssen sicherstellen, dass der Workflow im Leerlauf stets einen konsistenten Haltepunkt aufweist. Auf diese Weise können Sie den Workflow von einem vorherigen Persistenzpunkt neu starten, wenn der Workflow abgebrochen wird.

Konstruktoren

Name Beschreibung
TransactedReceiveScope()

Initialisiert eine neue Instanz der TransactedReceiveScope-Klasse.

Eigenschaften

Name Beschreibung
Body

Dient zum Abrufen oder Festlegen des Activity Textkörpers der TransactedReceiveScope Aktivität.

CacheId

Ruft den Bezeichner des Caches ab, der innerhalb des Bereichs der Workflowdefinition eindeutig ist.

(Geerbt von Activity)
CanInduceIdle

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Aktivität dazu führen kann, dass der Workflow im Leerlauf ist.

(Geerbt von NativeActivity)
Constraints

Ruft eine Sammlung von Constraint Aktivitäten ab, die für die ActivityÜberprüfung konfiguriert werden können.

(Geerbt von Activity)
DisplayName

Dient zum Abrufen oder Festlegen eines optionalen Anzeigenamens, der für das Debuggen, die Überprüfung, die Ausnahmebehandlung und die Nachverfolgung verwendet wird.

(Geerbt von Activity)
Id

Ruft einen Bezeichner ab, der im Bereich der Workflowdefinition eindeutig ist.

(Geerbt von Activity)
Implementation

Die Ausführungslogik der Aktivität.

(Geerbt von NativeActivity)
ImplementationVersion

Ruft die Implementierungsversion der Aktivität ab oder legt sie fest.

(Geerbt von NativeActivity)
Request

Ruft die Receive dieser TransactedReceiveScope Aktivität zugeordnete Aktivität ab oder legt sie fest.

Variables

Ruft die Auflistung der Variable diesem TransactedReceiveScopezugeordneten ab.

Methoden

Name Beschreibung
Abort(NativeActivityAbortContext)

Wenn sie in einer abgeleiteten Klasse implementiert wird, werden Aktionen als Reaktion auf die abgebrochene Aktivität ausgeführt.

(Geerbt von NativeActivity)
CacheMetadata(ActivityMetadata)

Nicht implementiert. Verwenden Sie stattdessen die CacheMetadata(NativeActivityMetadata) Methode.

(Geerbt von NativeActivity)
CacheMetadata(NativeActivityMetadata)

Erstellt und überprüft eine Beschreibung der Argumente, Variablen, untergeordneten Aktivitäten und Aktivitätsdelegatten der Aktivität.

(Geerbt von NativeActivity)
Cancel(NativeActivityContext)

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird Logik ausgeführt, um einen ordnungsgemäßen frühzeitigen Abschluss der Aktivität zu verursachen.

(Geerbt von NativeActivity)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Execute(NativeActivityContext)

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird die Ausführungslogik der Aktivität ausgeführt.

(Geerbt von NativeActivity)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Löst ein Ereignis aus, wenn eine Karte für die dynamische Aktualisierung erstellt wird.

(Geerbt von NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Löst ein Ereignis aus, wenn eine Karte für die dynamische Aktualisierung erstellt wird.

(Geerbt von NativeActivity)
ShouldSerializeDisplayName()

Gibt an, ob die DisplayName Eigenschaft serialisiert werden soll.

(Geerbt von Activity)
ToString()

Gibt einen String Wert zurück, der das Id Und DisplayName des .Activity

(Geerbt von Activity)
UpdateInstance(NativeActivityUpdateContext)

Aktualisiert die Instanz von NativeActivity.

(Geerbt von NativeActivity)

Gilt für: