Zugreifen auf OperationContext
Dieses Thema gilt für Windows Workflow Foundation 4.
Dieses Beispiel veranschaulicht, wie die Messagingaktivitäten (Receive und Send) mit einer benutzerdefinierten Bereichsaktivität verwendet werden können, um auf Current zuzugreifen und einen benutzerdefinierten Nachrichtenheader in einer ausgehenden oder eingehenden Nachricht anzufügen oder abzurufen.
Veranschaulicht
Messagingaktivitäten, ISendMessageCallback, IReceiveMessageCallback
Diskussion
In diesem Beispiel wird gezeigt, wie Erweiterungspunkte (ISendMessageCallback, IReceiveMessageCallback) in Messagingaktivitäten verwendet werden, um auf Current zuzugreifen. Die Rückrufe werden innerhalb der Workflowlaufzeit als eine Implementierung von IExecutionProperty registriert, die von den Messagingaktivitäten nach der Ausführung abgerufen wird. Jede Messagingaktivität im gleichen Bereich wie die IExecutionProperty-Implementierung ist betroffen. Insbesondere erzwingt dieses Beispiel das Rückrufverhalten mithilfe einer benutzerdefinierten Bereichsaktivität. ISendMessageCallback wird im Clientworkflow verwendet, um Id des Workflows als ausgehenden MessageHeader einzuschließen. Dieser Header wird dann im Dienst mit IReceiveMessageCallback abgerufen, und der Wert des Headers wird auf der Konsole ausgegeben.
So richten Sie das Beispiel ein, erstellen es und führen es aus
Dieses Beispiel macht einen Workflowdienst mithilfe von HTTP-Endpunkten verfügbar. Um dieses Beispiel auszuführen, müssen richtige URL-ACLs hinzugefügt werden (weitere Informationen finden Sie unter Konfigurieren von HTTP und HTTPS), entweder durch Ausführen von Visual Studio als Administrator oder durch Ausführen des folgenden Befehls an einer Eingabeaufforderung mit erhöhten Rechten, um die entsprechenden ACLs hinzuzufügen. Stellen Sie sicher, dass die Domäne und der Benutzername ersetzt werden.
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
Sobald die URL-ACLs hinzugefügt wurden, führen Sie die folgenden Schritte aus.
Erstellen Sie die Projektmappe.
Legen Sie mehrere Startprojekte fest, indem Sie mit der rechten Maustaste auf die Projektmappe klicken und Startprojekte festlegen auswählen.
Füge Sie Dienst und Client (in dieser Reihenfolge) als mehrere Startprojekte hinzu.
Führen Sie die Anwendung aus. Die Clientkonsole zeigt einen Workflow an, der zweimal ausgeführt wird, und das Dienstfenster zeigt die Instanz-ID dieser Workflows an.
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\Scenario\Services\Accessing Operation Context
|