TransactedReceiveScope Klasse

Definition

Eine Aktivität, die Bereiche für die Lebensdauer einer Transaktion festlegt, die von einer empfangenen Meldung initiiert wird. Die Transaktion kann in den Workflow der initiierenden Meldung übergeben oder vom Verteiler erstellt werden, wenn die Meldung 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 die Verwendung der TransactedReceiveScope-Klasse in einer Sequence-Aktivität.

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 der TransactedReceiveScope-Aktivität können Sie die Lebensdauer des Transaktionsflusses steuern.

Warnung

Für eine initiierende TransactedReceiveScope Aktivität (eine TransactedReceiveScope , die eine Receive Aktivität mit CanCreateInstance festgelegt auf trueenthält), wird die Transaktion erstellt, bevor die Laufzeit mit der Ausführung der TransactedReceiveScope Aktivität beginnt. Auf der Workflowaktivitätsebene ist dies keine Ambient-Transaktion, auf den zugrunde liegenden Beibehaltungsebenen ist es jedoch eine Ambient-Transaktion. Wenn bei der Ausführung des Workflows eine Persist-Aktivität vor der TransactedReceiveScope-Aktivität auftritt, versucht die Laufzeit die Beibehaltung unter der Ambient-Transaktion. Dieses Verhalten verursacht eine Sperre, bis die Transaktion abgeschlossen wurde. Da die Workflowausführung nicht den Body-Abschnitt erreicht hat, kann die Transaktion nicht abgeschlossen werden. Dieser Deadlock bewirkt, dass der Workflow nicht mehr reagiert, bis ein Timeout der Transaktion auftritt. Wenn die Transaktion ein Zeitüberschreitung aufweist, wird die neu erstellte Instanz abgebrochen.

Wichtig

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

Wichtig

Wenn Sie TransactedReceiveScope verwenden und Nachrichten in der falschen Reihenfolge eintreffen, wird beim Versuch, die erste der Nachrichten außerhalb der normalen Reihenfolge zu übermitteln, der Workflow abgebrochen. Sie müssen sicherstellen, dass der Workflow im Leerlauf stets einen konsistenten Haltepunkt aufweist. Falls der Workflow abgebrochen wird, können Sie ihn auf diese Weise anhand eines früheren Persistenzpunkts erneut starten.

Konstruktoren

TransactedReceiveScope()

Initialisiert eine neue Instanz der TransactedReceiveScope-Klasse.

Eigenschaften

Body

Ruft die Activity ab, die den Textkörper der TransactedReceiveScope-Aktivität bildet, oder legt sie fest.

CacheId

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

(Geerbt von Activity)
CanInduceIdle

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob die Aktivität verursachen kann, dass der Workflow in den Leerlauf versetzt wird.

(Geerbt von NativeActivity)
Constraints

Ruft eine Auflistung von Constraint-Aktivitäten ab, die so konfiguriert werden kann, dass sie die Validierung für Activity bereitstellt.

(Geerbt von Activity)
DisplayName

Ruft einen optionalen Anzeigenamen ab, der für Debugging, Validierung, Ausnahmebehandlung und Nachverfolgung verwendet wird, oder legt ihn fest.

(Geerbt von Activity)
Id

Ruft einen Bezeichner ab, der innerhalb des Bereichs 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 diese fest.

(Geerbt von NativeActivity)
Request

Ruft die Receive-Aktivität ab, die dieser TransactedReceiveScope-Aktivität zugeordnet ist, oder legt sie fest.

Variables

Ruft die Auflistung von Variable ab, die diesem TransactedReceiveScope zugeordnet sind.

Methoden

Abort(NativeActivityAbortContext)

Führt bei Implementierung in einer abgeleiteten Klasse Aktionen als Reaktion auf die abgebrochene Aktivität aus.

(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ätsdelegaten der Aktivität.

(Geerbt von NativeActivity)
Cancel(NativeActivityContext)

Führt bei Implementierung in einer abgeleiteten Klasse Logik für einen ordnungsgemäßen frühzeitigen Abschluss der Aktivität aus.

(Geerbt von NativeActivity)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Execute(NativeActivityContext)

Führt bei der Implementierung in eine abgeleitete Klasse die Ausführungslogik der Aktivität aus.

(Geerbt von NativeActivity)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Löst ein Ereignis aus, wenn eine Zuordnung für das dynamische Update erstellt wird.

(Geerbt von NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Löst ein Ereignis aus, wenn eine Zuordnung für das dynamische Update erstellt wird.

(Geerbt von NativeActivity)
ShouldSerializeDisplayName()

Gibt an, ob die DisplayName- Eigenschaft serialisiert werden soll.

(Geerbt von Activity)
ToString()

Gibt eine String zurück, die Id und DisplayName von Activity enthält.

(Geerbt von Activity)
UpdateInstance(NativeActivityUpdateContext)

Aktualisiert die NativeActivity-Instanz.

(Geerbt von NativeActivity)

Gilt für: