Uzyskiwanie dostępu do elementu OperationContext
W przykładzie AccessingOperationContext pokazano, jak działania obsługi komunikatów (Receive i Send) mogą być używane z działaniem zakresu niestandardowego w celu uzyskiwania dostępu do Current niestandardowego nagłówka wiadomości i dołączania lub pobierania niestandardowego nagłówka wiadomości w wiadomości wychodzącej lub przychodzącej.
Demonstracje
Działania obsługi komunikatów, ISendMessageCallback, IReceiveMessageCallback.
Dyskusja
W tym przykładzie pokazano, jak używać punktów rozszerzalności (ISendMessageCallback) IReceiveMessageCallbackw działaniach obsługi komunikatów w celu uzyskania dostępu do Currentelementu . Wywołania zwrotne są rejestrowane w środowisku uruchomieniowym przepływu pracy jako implementacja IExecutionProperty , która jest pobierana przez działania obsługi komunikatów po wykonaniu. Każde działanie obsługi komunikatów w tym samym zakresie, na które IExecutionProperty ma wpływ implementacja. W szczególności w tym przykładzie użyto niestandardowego działania zakresu w celu wymuszenia zachowania wywołania zwrotnego. Element ISendMessageCallback jest używany w przepływie pracy klienta do uwzględnienia przepływów pracy Id jako wychodzących MessageHeader. Ten nagłówek jest następnie pobierany w usłudze przy użyciu IReceiveMessageCallback elementu , a wartość nagłówka jest drukowana w konsoli.
Konfigurowanie, kompilowanie i uruchamianie przykładu
Ten przykład uwidacznia usługę przepływu pracy przy użyciu punktów końcowych HTTP. Aby uruchomić ten przykład, należy dodać odpowiednie listy ACL adresów URL (zobacz Konfigurowanie protokołu HTTP i HTTPS, aby uzyskać szczegółowe informacje), uruchamiając program Visual Studio jako Administracja istrator lub wykonując następujące polecenie w wierszu polecenia z podwyższonym poziomem uprawnień, aby dodać odpowiednie listy ACL. Upewnij się, że domena i nazwa użytkownika zostały zastąpione.
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
Po dodaniu list ACL adresów URL wykonaj następujące kroki.
Stwórz rozwiązanie.
Skonfiguruj wiele projektów startowych, klikając rozwiązanie prawym przyciskiem myszy i wybierając polecenie Ustaw projekty startowe.
Dodaj usługę i klienta (w tej kolejności) jako wiele projektów startowych.
Uruchom aplikację. Konsola klienta pokazuje przepływ pracy uruchomiony dwa razy, a w oknie Usługa jest wyświetlany identyfikator wystąpienia tych przepływów pracy.