Udostępnij za pośrednictwem


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

  1. 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%
    
  2. Po dodaniu list ACL adresów URL wykonaj następujące kroki.

    1. Stwórz rozwiązanie.

    2. Skonfiguruj wiele projektów startowych, klikając rozwiązanie prawym przyciskiem myszy i wybierając polecenie Ustaw projekty startowe.

    3. Dodaj usługę i klienta (w tej kolejności) jako wiele projektów startowych.

    4. 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.