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.
.NET Framework 4 fügt Windows Workflow Foundation eine Reihe von Features hinzu. Dieses Dokument beschreibt eine Reihe der neuen Features und enthält Details zu Szenarien, in denen sie nützlich sein können.
Nachrichtenaktivitäten
Die Messagingaktivitäten (Receive, SendReply, Send, ReceiveReply) werden verwendet, um WCF-Nachrichten von Ihrem Workflow zu senden und zu empfangen. Receive und SendReply Aktivitäten werden verwendet, um einen Windows Communication Foundation (WCF)-Dienstvorgang zu erstellen, der über WSDL genauso verfügbar gemacht wird wie Standard-WCF-Webdienste. Send und ReceiveReply werden verwendet, um einen Webdienst zu nutzen, der einem WCF ChannelFactoryähnelt. Für Workflow Foundation ist auch eine Add Service Reference-Erfahrung vorhanden, die vorkonfigurierte Aktivitäten generiert.
Erste Schritte mit Messagingaktivitäten
Erstellen Sie in Visual Studio 2012 ein WCF-Workflowdienstanwendungsprojekt. Das Paar Receive und SendReply wird auf dem Canvas platziert.
Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie "Dienstverweis hinzufügen" aus. Zeigen Sie auf einen vorhandenen Webdienst WSDL, und klicken Sie auf "OK". Erstellen Sie Ihr Projekt, um die generierten Aktivitäten (implementiert mithilfe Send und ReceiveReply) in Ihrer Toolbox anzuzeigen.
Beispielszenario für Messagingaktivitäten
Ein BestPriceFinder
Service ruft mehrere Flugliniendienste auf, um den besten Ticketpreis für eine bestimmte Route zu finden. Wenn Sie dieses Szenario implementieren, müssen Sie die Nachrichtenaktivitäten verwenden, um die Preisanforderung zu erhalten, die Preise von den Back-End-Diensten abzurufen und auf die Preisanfrage mit dem besten Preis zu antworten. Dies erfordert auch, dass Sie andere vordefinierte Aktivitäten verwenden, um die Geschäftslogik für die Berechnung des besten Preises zu erstellen.
WorkflowServiceHost
Das WorkflowServiceHost ist der sofort einsatzbereite Workflowhost, der mehrere Instanzen, Konfiguration, und WCF-Messaging unterstützt (obwohl die Workflows nicht zwingend Messaging nutzen müssen, um gehostet zu werden). Außerdem wird durch einen Satz von Dienstverhalten die Integration von Persistenz, Nachverfolgung und Instanzsteuerung bereitgestellt. Genau wie WCF ServiceHost kann WorkflowServiceHost selbst in einer Konsole-/WinForms-/WPF-Anwendung oder einem Windows-Dienst gehostet werden oder als XAMLX-Datei in IIS oder WAS webgehostet werden.
Erste Schritte mit dem Workflow-Diensthost
Erstellen Sie in Visual Studio 2010 ein WCF-Workflowdienstanwendungsprojekt: Dieses Projekt wird für die Verwendung WorkflowServiceHost in einer Webhostumgebung eingerichtet.
Um einen Nicht-Messaging-Workflow zu hosten, fügen Sie ein benutzerdefiniertes WorkflowHostingEndpoint hinzu, das die Instanz basierend auf einer Nachricht erstellt.
Workflowinstanzen können gesteuert werden (z. B. angehalten oder beendet), indem ein WorkflowControlEndpoint zum WorkflowServiceHost hinzugefügt und anschließend eine WorkflowControlClient verwendet wird.
Beispiele für die WorkflowServiceHost finden Sie in den folgenden Abschnitten:
Anwendung: Verwaltung angehaltener Instanzen
WorkflowServiceHost-Szenario
Ein BestPriceFinder-Service ruft mehrere Flugdienste auf, um den besten Ticketpreis für eine bestimmte Route zu finden. Wenn Sie dieses Szenario implementieren, müssen Sie den Workflow hosten in WorkflowServiceHost. Es würde auch die Nachrichtenaktivitäten verwenden, um die Preisanfrage zu erhalten, die Preise von den Back-End-Diensten abzurufen und auf die Preisanfrage mit dem besten Preis zu antworten.
Korrelation
Eine Korrelation ist eines von zwei Dingen:
Eine Möglichkeit zum Gruppieren von Nachrichten; d. h. die Beziehung zwischen einer Anforderungsnachricht und deren Antwort.
Eine Möglichkeit zum Zuordnen eines Datenteils zu einer Dienstinstanz
Erste Schritte
Um mit der Korrelation zu beginnen, erstellen Sie ein neues Projekt in Visual Studio. Erstellen Sie eine Variable vom Typ CorrelationHandle.
Ein Beispiel für die Korrelation, die zum Gruppieren von Nachrichten verwendet wird, ist eine Request-Reply Korrelation, die Nachrichten zusammen gruppiert.
Klicken Sie für eine Receive-Aktivität auf die CorrelationInitializers-Eigenschaft, und fügen Sie mithilfe der oben im ersten Schritt erstellten CorrelationHandle-Variablen ein RequestReplyCorrelationInitializer-Element hinzu.
Erstellen Sie eine SendReply Aktivität, indem Sie mit der rechten Maustaste auf die Receive Schaltfläche "SendReply erstellen" klicken. Fügen Sie ihn nach der Receive Aktivität in Ihren Workflow ein.
Ein Beispiel für die Zuordnung eines Datenteils zu einer Dienstinstanz ist eine inhaltsbasierte Korrelation, die eine Datenmenge (z. B. eine Auftrags-ID) einer bestimmten Workflowinstanz zuordnet.
- Klicken Sie bei jeder Nachrichtenaustauschaktivität auf die
CorrelationInitializers
-Eigenschaft, und fügen Sie mithilfe der oben erstellten QueryCorrelationInitializer-Variablen eine CorrelationHandle hinzu. Doppelklicken Sie im Dropdownmenü auf die gewünschte Eigenschaft der Nachricht (z. B. OrderID). Legen Sie dieCorrelatesWith
Eigenschaft auf die CorrelationHandle oben verwendete Variable fest.
- Klicken Sie bei jeder Nachrichtenaustauschaktivität auf die
Korrelationsszenario
Ein Workflow zur Auftragsverarbeitung wird verwendet, um die Erstellung neuer Aufträge zu verarbeiten und vorhandene Bestellungen zu aktualisieren, die gerade verarbeitet werden. Wenn Sie dieses Szenario implementieren, müssen Sie den Workflow in WorkflowServiceHost hosten und die Messagingaktivitäten verwenden. Es wäre auch eine Korrelation auf der Grundlage der orderId
erforderlich, um sicherzustellen, dass Aktualisierungen am richtigen Workflow vorgenommen werden.
Vereinfachte Konfiguration
Das WCF-Konfigurationsschema ist komplex und bietet Benutzern viele schwer zu findende Features. In .NET Framework 4.6.1 haben wir uns darauf konzentriert, WCF-Benutzer bei der Konfiguration ihrer Dienste mit den folgenden Features zu unterstützen:
Entfernen der Notwendigkeit einer expliziten Konfiguration pro Dienst. Wenn Sie keine Dienstelemente< für Ihren Dienst konfigurieren >und Ihr Dienst keinen Endpunkt programmgesteuert definiert, werden ihrem Dienst automatisch eine Gruppe von Endpunkten hinzugefügt, eine pro Dienstbasisadresse und pro Vertrag, die von Ihrem Dienst implementiert wird.
Ermöglicht es dem Benutzer, Standardwerte für WCF-Bindungen und -Verhaltensweisen zu definieren, die ohne explizite Konfiguration auf Dienste angewendet werden.
Standardendpunkte definieren wiederverwendbare vorkonfigurierte Endpunkte, die feste Werte für mindestens eine der Endpunkteigenschaften (Adresse, Bindung und Vertrag) aufweisen und das Definieren benutzerdefinierter Eigenschaften zulassen.
Schließlich erlaubt das ConfigurationChannelFactory<TChannel> die zentrale Verwaltung der WCF-Clientkonfiguration, was in Szenarien nützlich ist, in denen die Konfiguration ausgewählt oder geändert wird, nachdem die Anwendungsdomäne geladen wurde.
Erste Schritte
Vereinfachte Konfigurationsszenarien
Ein erfahrener ASMX-Entwickler möchte mit der Verwendung von WCF beginnen. WCF scheint jedoch zu kompliziert zu sein! Was sind alle Informationen, die ich in eine Konfigurationsdatei schreiben muss? In .NET 4 können Sie sogar entscheiden, überhaupt keine Konfigurationsdatei zu haben.
Eine vorhandene Gruppe von WCF-Diensten ist sehr schwierig zu konfigurieren und zu verwalten. Die Konfigurationsdatei enthält Tausende von Xml-Codezeilen, die extrem gefährlich sind, um zu berühren. Hilfe ist erforderlich, um die Menge an Code auf etwas besser verwaltbares Zu reduzieren.
Datenkontraktauflöser
In .NET Framework 3.5 gab es einige Einschränkungen beim Entwurf bekannter Typen:
Das dynamische Hinzufügen bekannter Typen während der Serialisierung oder Deserialisierung war nicht möglich.
Serialisierer konnten keine unbekannten xsi:type-Informationen verarbeiten.
Benutzer konnten nicht angeben, welche xsi:type-Informationen erscheinen sollten, um z. B. die Serialisierungsinstanz zu verkleinern.
Der DataContractResolver löst diese Probleme in .NET Framework 4.5.
Erste Schritte
Beispiele:
Datenvertragsresolver-Szenarien
Vermeiden Sie es, zehn KnownTypeAttribute Objekte in einem Dienst zu deklarieren.
Verringern der Größe des XML-Blobs.
Flussdiagramm
Flussdiagramm ist ein bekanntes Paradigma zur visuellen Darstellung von Domänenproblemen. Es handelt sich um eine neue Steuerungsflussart, die wir in .NET Framework 4 einführen. Ein Kernmerkmal des Flussdiagramms ist, dass immer nur eine Aktivität ausgeführt wird. In Flussdiagrammen können Schleifen und alternative Ergebnisse ausgedrückt werden, aber nicht die gleichzeitige Ausführung mehrerer Knoten.
Erste Schritte
Erstellen Sie in Visual Studio 2012 eine Workflowkonsolenanwendung. Fügen Sie im Workflow-Designer ein Flussdiagramm hinzu.
Das Flussdiagrammfeature verwendet die folgenden Klassen:
Beispiele:
Designerdokumentation:
Flussdiagrammszenarien
Eine Flussdiagrammaktivität kann verwendet werden, um ein Erratenspiel zu implementieren. Das Erratenspiel ist sehr einfach: Der Computer wählt eine Zufallszahl aus, und der Spieler muss diese Zahl erraten. Wenn der Spieler jeden Schätzwert einreicht, zeigt der Computer einen Hinweis an (d. h. "versuchen Sie es mit einer niedrigeren Zahl"). Wenn der Spieler die Zahl in weniger als 7 Versuchen findet, erhält er einen besonderen Glückwunsch vom Computer. Dieses Spiel kann mit einer Kombination der folgenden verfahrenstechnischen Aktivitäten implementiert werden:
Verfahrensaktivitäten (Sequence, If, ForEach, Switch, Assign, DoWhile, While)
Verfahrensaktivitäten bieten einen Mechanismus zum Modellieren des sequenziellen Steuerungsflusses mithilfe von Konzepten, die Programmierern vertraut sind. Diese Aktivitäten ermöglichen traditionell strukturierte Programmiersprachenkonstrukte und stellen ggf. die Sprachparität mit gängigen Prozedursprachen wie C# und Visual Basic bereit.
Erste Schritte
Erstellen Sie in Visual Studio 2012 eine Workflowkonsolenanwendung. Fügen Sie prozedurale Aktivitäten im Workflow-Designer hinzu.
Beispiele:
Designerdokumentation:
Verfahrensaktivitätsszenarien
Parallel: Ein Intranetdokumentverwaltungssystem verfügt über einen Dokumentgenehmigungsworkflow. Dokumente müssen von Personen in mehreren Abteilungen genehmigt werden, bevor sie im Intranet veröffentlicht werden können. Es gibt keine festgelegte Reihenfolge für die Genehmigungen; sie können jederzeit erfolgen, während sich das Dokument in der Phase "Genehmigung ausstehend" befindet. Wenn ein Benutzer ein Dokument zur Überprüfung übermittelt, muss es vom direkten Vorgesetzten, dem Intranetadministrator und dem internen Kommunikationsmanager genehmigt werden.
ParallelForEach<T>: Eine WF-Anwendung verwaltet Unternehmenskäufe innerhalb eines großen Unternehmens. Die Unternehmensregeln diktieren, dass vor der Planung eines Einkaufsvorgangs die Bewertungen von drei verschiedenen Anbietern erforderlich sind. Ein Mitarbeiter aus der Einkaufsabteilung wählt drei Lieferanten aus der Lieferantenliste des Unternehmens aus. Nachdem diese Lieferanten ausgewählt und benachrichtigt wurden, wartet das Unternehmen auf ihre wirtschaftlichen Vorschläge. Die Vorschläge können in beliebiger Reihenfolge erfolgen. Zum Implementieren dieses Szenarios in WF wird eine ParallelForEach<T>-Aktivität verwendet, die die Auflistung von Anbietern durchläuft und Angebote anfordert. Nachdem alle Angebote gesammelt wurden, wird das beste ausgewählt und angezeigt.
InvokeMethod
Die InvokeMethod-Aktivität erlaubt den Aufruf öffentlicher Methoden in Objekten oder Typen im Gültigkeitsbereich. Sie unterstützt das Aufrufen von Instanzen und statischen Methoden mit oder ohne Parameter (einschließlich Parameterarrays) und generischen Methoden. Sie ermöglicht außerdem die synchrone und asynchrone Ausführung der Methode.
Erste Schritte
Erstellen Sie in Visual Studio 2012 eine Workflowkonsolenanwendung. Fügen Sie eine InvokeMethod Aktivität im Workflow-Designer hinzu, und konfigurieren Sie statische und Instanzmethoden darauf.
Designerdokumentation: InvokeMethod-Aktivitäts-Designer
InvokeMethod-Szenarien
Eine Methode innerhalb eines Objekts, das im Geltungsbereich liegt, muss aufgerufen werden. Beispielsweise muss einem Wörterbuch ein Wert hinzugefügt werden. Die Add-Methode der Instanz des Wörterbuchs wird aufgerufen, und der Schlüssel und der Wert werden bereitgestellt.
Für ein Legacy-CLR-Objekt muss eine Methode aufgerufen werden. Anstatt eine benutzerdefinierte Aktivität zu erstellen, um den Aufruf dieser Legacyklasse zu umschließen, wenn es sich während der Workflowausführung im Gültigkeitsbereich befindet, kann InvokeMethod verwendet werden.
Fehlerbehandlungsaktivitäten
Die TryCatch Aktivität bietet einen Mechanismus zum Abfangen von Ausnahmen, die während der Ausführung einer Gruppe von enthaltenen Aktivitäten auftreten (ähnlich dem Try/Catch-Konstrukt in C# und Visual Basic). TryCatch stellt die Ausnahmebehandlung auf Workflowebene bereit. Wenn eine unbehandelte Ausnahme ausgelöst wird, wird der Workflow abgebrochen, und der Finally-Block wird nicht ausgeführt. Dieses Verhalten ist mit C# konsistent.
Erste Schritte
Erstellen Sie in Visual Studio 2012 eine Workflowkonsolenanwendung. Fügen Sie eine TryCatch Aktivität im Workflow-Designer hinzu.
Beispiel: Fehlerbehandlung in einer Flussdiagrammaktivität mithilfe von TryCatch
Designerdokumentation: Designer für Fehlerbehandlungsaktivitäten
Fehlerbehandlungsszenarien
Eine Reihe von Aktivitäten muss ausgeführt werden, und bestimmte Logik muss ausgeführt werden, wenn ein Fehler auftritt. Wenn während dieser Fehlerbehandlungslogik festgestellt wird, dass der Fehler nicht wiederhergestellt werden kann, wird die Ausnahme erneut geworfen, und die übergeordnete Aktivität (oder der Host) kümmert sich um das Problem.
Aktivität auswählen
Die Pick Aktivität bietet ereignisbasierte Steuerungsflussmodellierung in WF. Pick enthält zahlreiche Verzweigungen, wobei jede Verzweigung vor ihrer Ausführung auf ein bestimmtes Ereignis wartet. In diesem Setup verhält sich ein Pick ähnlich wie ein Switch<T>, wobei die Aktivität nur eines der Ereignisse ausführt, denen sie zuhört. Jeder Branch ist ereignisgesteuert, und das Ereignis, das zuerst auftritt, führt zuerst den entsprechende Branch aus. Alle anderen Verzweigungen werden abgebrochen, und die Überwachung der Ereignisse wird beendet.
Erste Schritte
Erstellen Sie in Visual Studio 2012 eine Workflowkonsolenanwendung. Fügen Sie eine Pick Aktivität im Workflow-Designer hinzu.
Beispiel: Verwenden der Pick-Aktivität
Designerdokumentation: Aktivitätsdesigner auswählen
Szenario auswählen
Ein Benutzer muss zur Eingabe aufgefordert werden. Unter normalen Umständen würde der Entwickler eine Methode wie ReadLine aufrufen, um eine Benutzereingabe abzufragen. Das Problem mit diesem Setup besteht darin, dass das Programm wartet, bis der Benutzer etwas eingibt. In diesem Szenario ist ein Timeout erforderlich, um eine blockierende Tätigkeit zu entblocken. Ein häufiges Szenario ist ein Szenario, bei dem eine Aufgabe innerhalb einer bestimmten Zeitdauer abgeschlossen werden muss. Das Umsetzen eines Timeouts für eine blockierende Aktivität ist ein Szenario, bei dem eine Auswahl sehr nützlich ist.
WCF-Routingdienst
Der Routingdienst ist ein generischer Softwarerouter, mit dem Sie steuern können, wie WCF-Nachrichten zwischen Ihren Clients und Diensten fließen. Der Routingdienst ermöglicht es Ihnen, Ihre Clients von Ihren Diensten zu entkoppeln, was Ihnen viel mehr Freiheit in Bezug auf die Konfigurationen bietet, die Sie unterstützen können, und die Flexibilität, die Sie haben, wenn Sie überlegen, wie Sie Ihre Dienste hosten. In .NET Framework 3.5 wurden Clients und Dienste eng gekoppelt; ein Kunde musste sich über alle Dienste informieren, mit denen er sprechen musste und wo er sich befand. Darüber hinaus hatte WCF in .NET Framework 3.5 die folgenden Einschränkungen:
Fehlerbehandlung war komplex, da diese Logik in den Client hartcodiert werden musste.
Clients und Dienste mussten immer dieselben Bindungen verwenden.
Dienste wurden selten gut berücksichtigt: Es ist einfacher, den Kunden mit einem einzigen Dienst sprechen zu lassen, der alle Anforderungen erfüllt, anstatt zwischen mehreren Diensten wählen zu müssen.
Der Routingdienst in .NET 4 wurde entwickelt, um diese Probleme einfacher zu lösen. Der neue Routingdienst verfügt über die folgenden Features:
Inhaltsbasiertes Routing (MessageFilter Objekte untersuchen eine Nachricht, um zu bestimmen, wo sie gesendet werden soll.)
Protokollbrücken (Transport und Nachrichtenübermittlung)
Fehlerbehandlung (der Router fängt Kommunikationsausnahmen ab und führt ein Failover zu Sicherungsendpunkten aus)
Dynamische Aktualisierung (im Arbeitsspeicher) von MessageFilterTable<TFilterData> und Routingkonfiguration.
Erste Schritte
Dokumentation: Routing
Beispiele: Routingdienste [WCF-Beispiele]
Blog: Regeln für Routing!
Routingszenarien
Der Routingdienst ist in den folgenden Szenarien nützlich:
Kunden können mit mehreren Diensten sprechen, ohne sie direkt adressieren zu müssen.
Clients können zusätzliche Logik für eine Clientanforderung ausführen, um zu bestimmen, wo sie weitergeleitet werden soll.
Dekompilieren Sie die Vorgänge, die ein Client ausführt, in mehrere Dienstimplementierungen, ohne den Client umzugestalten.
Clients und Dienste können unterschiedliche Bindungen mit verschiedenen Sicherheitseinstellungen verwenden.
Clients können befähigt werden, robuster gegen Fehler oder die Nichtverfügbarkeit von Diensten zu sein.
WCF-Suche
WCF Discovery ist eine Frameworktechnologie, mit der Sie einen Ermittlungsmechanismus in Ihre Anwendungsinfrastruktur integrieren können. Sie können dies verwenden, um Ihren Dienst auffindbar zu machen und Ihre Clients so zu konfigurieren, dass sie nach Diensten suchen. Clients müssen nicht mehr mit einem Endpunkt hartcodiert werden, sodass die Anwendung stabiler und fehlertolerant wird. Discovery ist die perfekte Plattform, um Funktionen für die automatische Konfiguration in Ihre Anwendung zu integrieren.
Das Produkt basiert auf dem WS-Discovery Standard. Es wurde entwickelt, um interoperabel, erweiterbar und generisch zu sein. Das Produkt unterstützt zwei Betriebsmodi:
Verwaltet: Wenn im Netzwerk eine Entität vorhanden ist, die über vorhandene Dienste informiert ist, fragen Clients sie direkt nach Informationen ab. Dies entspricht Active Directory.
Ad-hoc: Wo Clients Multicastnachrichten verwenden, um Dienste zu suchen.
Darüber hinaus sind Ermittlungsmeldungen netzwerkprotokollagnostisch; Sie können diese auf jedem Protokoll verwenden, das die Modusanforderungen unterstützt. Ein Beispiel dafür ist, dass Entdeckungs-Multicastnachrichten über den UDP-Kanal oder ein anderes beliebiges Netzwerk gesendet werden können, das Multicastnachrichten unterstützt. Mit diesen Designpunkten, kombiniert mit Featureflexibilität, können Sie die Ermittlung speziell an Ihre Lösung anpassen.
Erste Schritte
Dokumentation: WCF Discovery
Beispiele: Discovery (Beispiele)
Entdeckungsszenarien
Ein Entwickler möchte keine hartcodierten Endpunkte schreiben, da es unbekannt ist, wann mein Dienst verfügbar ist. Stattdessen möchte der Entwickler zur Laufzeit einen Dienst auswählen. Zwischen den Komponenten in der Anwendung sind mehr Entkoppelung, Robustheit und automatische Konfiguration erforderlich.
Nachverfolgung
Die Workflownachverfolgung bietet Einblicke in die Ausführung einer Workflowinstanz. Die Nachverfolgungsereignisse werden von einem Workflow auf Workflowinstanzebene ausgegeben, wenn im Workflow Aktivitäten ausgeführt werden. Dem Workflowhost muss eine Workflownachverfolgungskomponente hinzugefügt werden, um Nachverfolgungsdatensätze zu abonnieren. Die Nachverfolgungsdatensätze werden mithilfe eines Nachverfolgungsprofils gefiltert. .NET Framework stellt einen ETW-Teilnehmer (Ereignisablaufverfolgung für Windows) bereit, und ein grundlegendes Profil wird in der machine.config-Datei installiert.
Erste Schritte
Erstellen Sie in Visual Studio 2010 ein WCF-Workflowdienstanwendungsprojekt. Um mit der Projekterstellung zu beginnen, werden Receive und SendReply auf dem Canvas platziert.
Öffnen Sie die Datei "web.config", und fügen Sie ein ETW-Nachverfolgungsverhalten ohne Profil hinzu.
Das Standardprofil wird verwendet.
Öffnen Sie die Ereignisanzeige, und aktivieren Sie den Analysekanal im folgenden Knoten: Ereignisanzeige, Anwendungen und Dienstprotokolle, Microsoft, Windows, Application Server-Applications. Klicken Sie mit der rechten Maustaste auf Analytisch, und wählen Sie Protokoll aktivieren aus.
Führen Sie den Workflowdienst aus.
Beobachten Sie die Workflowverfolgungsereignisse in der Ereignisanzeige.
Beispiele: Nachverfolgen
Konzeptionelle Dokumentation: Workflownachverfolgung und Ablaufverfolgung
SQL-Workflowinstanzspeicher
Dies SqlWorkflowInstanceStore ist eine SQL Server-basierte Implementierung eines Instanzspeichers. Ein Instanzspeicher speichert den Status einer ausgeführten Instanz zusammen mit allen Daten, die zum Laden und Fortsetzen dieser Instanz erforderlich sind. Der Diensthost weist den Instanzspeicher an, den Instanzstatus zu speichern, wenn der Workflow beibehalten wird, und weist den Instanzspeicher an, den Instanzstatus zu laden, wenn eine Nachricht für diese Instanz eingeht oder eine Verzögerungsaktivität abläuft.
Erste Schritte
Erstellen Sie in Visual Studio 2012 einen Workflow, der eine implizite oder explizite Persist Aktivität enthält. Fügen Sie dem Workflowdiensthost das SqlWorkflowInstanceStore-Verhalten hinzu. Dies kann im Code oder in der Anwendungskonfigurationsdatei erfolgen.
Beispiele: Persistenz
Konzeptionelle Dokumentation: SQL-Workflowinstanzspeicher.