Hosting di servizi flusso di lavoro

Per poter rispondere ai messaggi in arrivo, un servizio flusso di lavoro deve essere ospitato. I servizi flusso di lavoro utilizzano l'infrastruttura di messaggistica WCF e sono quindi ospitati in modi analoghi. Come i servizi WCF, i servizi flusso di lavoro possono essere ospitati in qualsiasi applicazione gestita, in Internet Information Services (IIS) o nel servizio Attivazione processo Windows (WAS). I servizi flusso di lavoro possono inoltre essere ospitati in Windows Server AppFabric. Per altre informazioni su Windows Server App Fabric, vedere la documentazione di Windows Server App Fabric, Funzionalità di hosting di AppFabrice Concetti di hosting di AppFabric. Per altre informazioni sui vari modi per ospitare i servizi WCF, vedere Servizi di hosting.

Hosting in un'applicazione gestita

Per ospitare un servizio flusso di lavoro in un'applicazione gestita, utilizzare la classe WorkflowServiceHost. Il costruttore WorkflowServiceHost consente di specificare un'istanza di servizio flusso di lavoro singleton, una definizione del servizio flusso di lavoro o un'attività che utilizza le attività di messaggistica del flusso di lavoro. La chiamata a Open fa in modo che il servizio avvii l'ascolto di messaggi in ingresso.

Hosting in IIS o WAS

L'hosting di un servizio flusso di lavoro in IIS o WAS prevede la creazione di una directory virtuale e il posizionamento dei file nella directory virtuale che definiscono il servizio e il relativo comportamento. Quando si ospita un servizio flusso di lavoro in IIS o WAS esistono diverse possibilità:

  • Posizionare un file con estensione xamlx che definisce il servizio flusso di lavoro in una directory virtuale IIS/WAS insieme a un file Web.config che specifica i comportamenti del servizio, gli endpoint e altri elementi di configurazione.

  • Posizionare un file con estensione xamlx che definisce il servizio flusso di lavoro in una directory virtuale IIS/WAS. Il file con estensione xamlx specifica gli endpoint da esporre. Gli endpoint sono specificati in un elemento WorkflowService.Endpoints, come indicato nell'esempio seguente.

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

    Nota

    Non è possibile specificare i comportamenti in un file con estensione xamlx, pertanto è richiesto un file Web.config se è necessario specificare impostazioni relative al comportamento.

  • Posizionare un file con estensione xamlx che definisce il servizio flusso di lavoro in una directory virtuale IIS/WAS. Posizionare inoltre un file con estensione svc nella directory virtuale. Il file con estensione svc consente di specificare una factory di host di servizio Web personalizzata, applicare il comportamento personalizzato o caricare la configurazione da un percorso personalizzato.

  • Posizionare un assembly nella directory virtuale IIS/WAS che contiene un'attività che utilizza le attività di messaggistica di WCF.

Un file con estensione xamlx che definisce un servizio flusso di lavoro deve contenere un elemento radice <Service> o un elemento radice contenente qualsiasi tipo derivato da Activity. In caso di uso del modello di attività di Visual Studio, viene creato un file con estensione xamlx. In caso di uso del modello di servizio flusso di lavoro WCF, viene creato un file con estensione xamlx.

Hosting di servizi flusso di lavoro in Windows Server AppFabric

L'hosting di un servizio flusso di lavoro in Windows Server AppFabric è simile all'hosting in IIS/WAS. L'unica differenza consiste nel fatto che Windows Server App Fabric viene installato. In Windows Server AppFabric vengono forniti gli strumenti aggiunti a Gestione Internet Information Services, nonché i cmdlet PowerShell. Tali strumenti semplificano la distribuzione, la gestione e il rilevamento dei servizi flusso di lavoro e dei servizi WCF.

Riferimento ad attività personalizzate

È necessario aggiungere riferimenti alle attività personalizzate alla sezione <Assemblies> in <System.Web.Compilation>, in modo che vengano caricati nel dominio dell'applicazione e il deserializzatore XAML sia in grado di individuare i tipi. È possibile configurare queste impostazioni a livello dell'applicazione o nel file Web.config radice, se tali impostazioni devono essere applicate a tutte le applicazioni nel computer.

Distribuzione

Lo strumento Distribuzione Web è stato creato per agevolare il processo di distribuzione. Lo strumento consente di eseguire la migrazione delle applicazioni tra IIS 6.0 e IIS 7.0, sincronizzare server farm e inserire in pacchetti, archiviare e distribuire applicazioni Web. Per altre informazioni, vedere Strumento di distribuzione MS.

Vedi anche