Udostępnij za pośrednictwem


Elementy wewnętrzne hosta usługi przepływu pracy

WorkflowServiceHost udostępnia hosta dla usług przepływu pracy. Odpowiada za nasłuchiwanie przychodzących komunikatów i kierowanie ich do odpowiedniego wystąpienia usługi przepływu pracy, steruje zwalnianiem i utrwalaniem bezczynnych przepływów pracy i nie tylko. W tym temacie opisano sposób przetwarzania komunikatów przychodzących przez element WorkflowServiceHost.

Omówienie elementu WorkflowServiceHost

Klasa WorkflowServiceHost jest używana do hostowania usług przepływu pracy. Nasłuchuje przychodzących komunikatów i kieruje je do odpowiedniego wystąpienia usługi, tworzenia nowych wystąpień lub ładowania istniejących wystąpień z magazynu trwałego zgodnie z potrzebami. Na poniższym diagramie przedstawiono ogólny sposób WorkflowServiceHost działania:

Diagram that shows an overview of the Workflow Service Host.

Ten diagram pokazuje, że WorkflowServiceHost ładuje definicje usługi przepływu pracy z plików xamlx i ładuje informacje o konfiguracji z pliku konfiguracji. Ładuje również konfigurację śledzenia z profilu śledzenia. WorkflowServiceHost Uwidacznia punkt końcowy sterowania przepływem pracy, który umożliwia wysyłanie operacji sterowania do wystąpień przepływu pracy. Aby uzyskać więcej informacji, zobacz Przykładowy punkt końcowy kontroli przepływu pracy.

WorkflowServiceHost Uwidacznia również punkty końcowe aplikacji, które nasłuchują przychodzących komunikatów aplikacji. Po nadejściu komunikatu przychodzącego jest wysyłany do odpowiedniego wystąpienia usługi przepływu pracy (jeśli jest on aktualnie załadowany). W razie potrzeby zostanie utworzone nowe wystąpienie przepływu pracy. Lub jeśli istniejące wystąpienie zostało utrwalone, jest ładowane z magazynu trwałości.

Szczegóły elementu WorkflowServiceHost

Na poniższym diagramie przedstawiono sposób WorkflowServiceHost obsługi komunikatów w nieco bardziej szczegółowy sposób:

Diagram that shows the Workflow Service Host message flow.

Ten diagram przedstawia trzy różne punkty końcowe, punkt końcowy aplikacji, punkt końcowy sterowania przepływem pracy i punkt końcowy hostingu przepływu pracy. Punkt końcowy aplikacji odbiera komunikaty powiązane z określonym wystąpieniem przepływu pracy. Punkt końcowy sterowania przepływem pracy nasłuchuje operacji sterowania. Punkt końcowy hostingu przepływu pracy nasłuchuje komunikatów powodujących WorkflowServiceHost ładowanie i wykonywanie przepływów pracy innych niż usługi. Jak pokazano na diagramie, wszystkie komunikaty są przetwarzane za pośrednictwem środowiska uruchomieniowego programu WCF. Ograniczanie wystąpienia usługi przepływu pracy jest osiągane przy użyciu MaxConcurrentInstances właściwości . Ta właściwość ogranicza liczbę współbieżnych wystąpień usługi przepływu pracy. Po przekroczeniu tego ograniczenia wszelkie dodatkowe żądania dotyczące nowych wystąpień usługi przepływu pracy lub żądań aktywowania trwałych wystąpień przepływu pracy będą kolejkowane. Żądania w kolejce są przetwarzane w kolejności FIFO niezależnie od tego, czy są żądaniami dla nowego wystąpienia, czy uruchomionego, utrwalonego wystąpienia. Informacje o zasadach hosta są ładowane, które określają sposób, w jaki nieobsługiwane wyjątki są traktowane, oraz jak bezczynne usługi przepływu pracy są zwalniane i utrwalane. Aby uzyskać więcej informacji na temat tych tematów, zobacz How to: Configure Workflow Unhandled Exception Behavior with WorkflowServiceHost and How to: Configure Idle Behavior with WorkflowServiceHost ( Jak skonfigurować zachowanie bezczynności za pomocą elementu WorkflowServiceHost). Wystąpienia przepływu pracy są utrwalane zgodnie z zasadami hosta i są ładowane ponownie w razie potrzeby. Aby uzyskać więcej informacji na temat trwałości przepływu pracy, zobacz: How to: Configure Persistence with WorkflowServiceHost (Jak skonfigurować trwałość przy użyciu elementu WorkflowServiceHost), Creating a Long-running Workflow Service (Tworzenie długotrwałej usługi przepływu pracy) i Workflow Persistence (Trwałość przepływu pracy).

Na poniższej ilustracji przedstawiono przepływ wywoływany po wywołaniu elementu WorkflowServiceHost.Open:

Diagram that shows the flow when WorkflowServiceHost.Open is called.

Przepływ pracy jest ładowany z kodu XAML, a drzewo działań jest tworzone. WorkflowServiceHost Przeprowadzi drzewo działań i utworzy opis usługi. Konfiguracja jest stosowana do hosta. Na koniec host zaczyna nasłuchiwać przychodzących komunikatów.

Na poniższej ilustracji przedstawiono działanie wykonywane po odebraniu WorkflowServiceHost komunikatu powiązanego z działaniem Odbieranie z ustawioną wartością CanCreateInstance na wartość true:

Decision tree used by the WFS Host when it receives a message and CanCreateInstance is true.

Komunikat pojawia się i jest przetwarzany przez stos kanału WCF. Ograniczenia są sprawdzane, a zapytania korelacji są wykonywane. Jeśli komunikat jest powiązany z istniejącym wystąpieniem, komunikat zostanie dostarczony. Jeśli należy utworzyć nowe wystąpienie, zostanie zaznaczona właściwość CanCreateInstance działania Odbierz. Jeśli jest ustawiona wartość true, zostanie utworzone nowe wystąpienie i zostanie dostarczony komunikat.

Na poniższej ilustracji przedstawiono działanie wykonywane po odebraniu WorkflowServiceHost komunikatu powiązanego z działaniem Odbieranie, które ma ustawioną wartość False dla klasy CanCreateInstance.

Decision tree used by the WFS Host when it receives a message and CanCreateInstance is false.

Komunikat pojawia się i jest przetwarzany przez stos kanału WCF. Ograniczenia są sprawdzane, a zapytania korelacji są wykonywane. Komunikat jest powiązany z istniejącym wystąpieniem (ponieważ canCreateInstance jest fałszywy), więc wystąpienie jest ładowane z magazynu trwałości, zakładka jest wznawiana, a przepływ pracy jest wykonywany.

Ostrzeżenie

Nie można otworzyć hosta usługi przepływu pracy, jeśli program SQL Server jest skonfigurowany do nasłuchiwania tylko w protokole NamedPipe.

Zobacz też