Hosten von Workflowdiensten

Ein Workflowdienst muss gehostet werden, damit er auf eingehende Meldungen reagieren kann. Workflowdienste verwenden die WCF-Messaginginfrastruktur und werden daher auf ähnliche Weise gehostet. Wie WCF-Dienste auch, können Workflowdienste in allen verwalteten Anwendungen, unter Internetinformationsdienste (IIS) oder unter Windows Process Activation Services (WAS) gehostet werden. Außerdem können Workflowdienste unter Windows Server AppFabric gehostet werden. Weitere Informationen über Windows Server App Fabric finden Sie in der Windows Server App Fabric documentation, AppFabric Hosting Features und AppFabric Hosting Concepts. Weitere Informationen zu den verschiedenen Möglichkeiten zum Hosten von WCF-Diensten finden Sie unter Hostingdienste.

Hosten in einer verwalteten Anwendung

Verwenden Sie die WorkflowServiceHost-Klasse, um einen Workflowdienst in einer verwalteten Anwendung zu hosten. Mit dem WorkflowServiceHost-Konstruktor können Sie eine Singleton-Workflowdienstinstanz, eine Workflowdienstdefinition oder eine Aktivität angeben, die die Workflowmessagingaktivitäten verwendet. Das Aufrufen von Open bewirkt, dass der Dienst mit dem Überwachen von eingehenden Nachrichten beginnt.

Hosten unter IIS oder WAS

Das Hosten eines Workflowdiensts unter IIS oder WAS umfasst das Erstellen eines virtuellen Verzeichnisses und das Einfügen von Dateien in das virtuelle Verzeichnis, die den Dienst und sein Verhalten definieren. Beim Hosten eines Workflowdiensts unter IIS oder WAS gibt es mehrere Möglichkeiten:

  • Fügen Sie eine XAMLX-Datei, die den Workflowdienst definiert, zusammen mit einer Web.config-Datei, die das Dienstverhalten, Endpunkte und andere Konfigurationselemente angibt, in ein virtuelles IIS/WAS-Verzeichnis ein.

  • Fügen Sie eine XAMLX-Datei, die den Workflowdienst definiert, in ein virtuelles IIS/WAS-Verzeichnis ein. Die XAMLX-Datei gibt die Endpunkte an, die verfügbar gemacht werden. Endpunkte werden in einem WorkflowService.Endpoints-Element angegeben, wie im folgenden Beispiel gezeigt.

    <WorkflowService xmlns="http://schemas.microsoft.com/netfx/2009/xaml/servicemodel"  xmlns:p1="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <WorkflowService.Endpoints>
        <Endpoint ServiceContractName="IWorkFlowEchoService" AddressUri="">
          <Endpoint.Binding>
            <BasicHttpBinding />
          </Endpoint.Binding>
        </Endpoint>
      </WorkflowService.Endpoints>
    <!-- ... -->
    </WorkflowService>
    

    Hinweis

    Verhalten können nicht in einer XAMLX-Datei angegeben werden. Aus diesem Grund benötigen Sie eine Web.config-Datei, falls Sie Verhaltenseinstellungen angeben müssen.

  • Fügen Sie eine XAMLX-Datei, die den Workflowdienst definiert, in ein virtuelles IIS/WAS-Verzeichnis ein. Fügen Sie zusätzlich eine SVC-Datei in das virtuelle Verzeichnis ein. Mithilfe der SVC-Datei können Sie eine benutzerdefinierte Webdienst-Hostfactory angeben, benutzerdefiniertes Verhalten anwenden oder eine Konfiguration von einem benutzerdefinierten Speicherort laden.

  • Fügen Sie eine Assembly in das virtuelle IIS/WAS-Verzeichnis ein, in dem eine Aktivität enthalten ist, die die WCF-Messagingaktivitäten verwendet.

Eine XAMLX-Datei, die einen Workflowdienst definiert, muss ein <Service>-Stammelement bzw. ein Stammelement enthalten, das alle von Activity abgeleiteten Typen enthält. Bei Verwendung der Visual Studio Aktivitätsvorlage wird eine .xamlx-Datei erstellt. Bei Verwendung der WCF Workflow Service-Vorlage wird eine .xamlx-Datei erstellt.

Hosten eines Workflowdiensts unter Windows Server AppFabric

Das Hosten eines Workflowdiensts unter Windows Server App Fabric erfolgt auf dieselbe Weise wie das Hosten unter IIS/WAS. Der einzige Unterschied besteht darin, dass Windows Server App Fabric installiert wird. Windows Server App Fabric stellt Tools bereit, die dem Internetinformationsdienste-Manager sowie PowerShell-Commandlets hinzugefügt werden. Diese Tools vereinfachen das Bereitstellen, Verwalten und Nachverfolgen von Workflowdiensten und WCF-Diensten.

Verweisen auf benutzerdefinierte Aktivitäten

Verweise auf benutzerdefinierte Aktivitäten müssen dem Abschnitt <Assemblies> unter <System.Web.Compilation> hinzugefügt werden, damit diese in die Anwendungsdomäne geladen werden und der XAML-Deserialisierer die Typen finden kann. Diese Einstellungen können auf Anwendungsebene oder in der Web.config-Stammdatei vorgenommen werden, falls die Einstellungen für alle Anwendungen auf dem Computer übernommen werden sollen.

Bereitstellung

Das Webbereitstellungstool wurde erstellt, um die Bereitstellung zu vereinfachen. Mit dem Tool können Sie Anwendungen zwischen IIS 6.0 und IIS 7.0 migrieren, Serverfarmen synchronisieren und Webanwendungen verpacken, archivieren und bereitstellen. Weitere Informationen finden Sie unter MS Deployment Tool (MS-Bereitstellungstool).

Siehe auch