Distribuzione di un flusso di lavoro come servizio Web
Il framework di Windows Workflow Foundation supporta l'interoperabilità con i servizi Web. Ciò comprende la possibilità di esporre un flusso di lavoro come servizio Web ai client ASP.NET e agli altri flussi di lavoro. Windows Workflow Foundation supporta la pubblicazione di un flusso di lavoro come servizio Web ASP.NET su un server Web o server farm con ASP.NET in esecuzione su Internet Information Services (IIS) 6.0. Dal momento che il supporto è basato su ASP.NET 2.0, erediterà la maggior parte delle funzionalità di un servizio Web ASP.NET standard.
La libreria di attività di base di Windows Workflow Foundation contiene le attività WebServiceInputActivity e WebServiceOutputActivity che consentono a un flusso di lavoro di essere utilizzato come endpoint di servizio Web. Per informazioni sull'utilizzo di queste attività di servizi Web, vedere Utilizzo dell'attività WebServiceInputActivity e Utilizzo dell'attività WebServiceOutputActivity.
Hosting Web di flussi di lavoro
Le classi primarie utilizzate per l'hosting Web di flussi di lavoro sono:
WorkflowWebHostingModule
La classe WorkflowWebHostingModule è il meccanismo di routing predefinito utilizzato per inviare una richiesta di servizio Web a un'istanza di flusso di lavoro appropriata tramite cookie ASP.NET. È pertanto necessario che i client che inviano queste richieste supportino i cookie.
Benché Windows Workflow Foundation offra questo meccanismo di routing predefinito, è possibile implementare un meccanismo di routing personalizzato. Ad esempio, nei casi in cui non è possibile attivare i cookie nel client, quest'ultimo può essere configurato in modo da creare l'istanza del flusso di lavoro con un ID specifico. Questo ID può quindi essere passato in ogni richiesta di servizio Web. La pipeline di richieste può essere configurata con gestori SOAP o HTTP in modo da intercettare la chiamata, recuperare l'ID dell'istanza del flusso di lavoro dalle informazioni contenute nell'intestazione e quindi impostare l'elemento HttpContext.Current.Items.Add("__WorkflowInstanceId__", workflowInstanceId)
sull'ID in arrivo.
ManualWorkflowSchedulerService
La classe ManualWorkflowSchedulerService è un'implementazione specifica della classe WorkflowSchedulerService che controlla il numero di thread generati in un processo ASP.NET riutilizzando il thread che ha inviato la richiesta Web ASP.NET relativa all'esecuzione dell'istanza del flusso di lavoro. Ciò garantisce che, in qualsiasi momento, il numero di thread attivi nel runtime del flusso di lavoro sia uguale al numero di richieste Web attive nel processo ASP.NET.
Limitazioni dei flussi di lavoro esposti come servizi Web
Il funzionamento del routing delle istanze si basa su una sessione ASP.NET. Come consumer di un servizio Web, deve supportare un cookie ASP.NET.
Anche se il modello ricezione di richiesta/invio di risposta può essere configurato come asincrono in un flusso di lavoro, al consumer di un servizio Web vengono applicate le limitazioni generali di ASP.NET. Ovvero, un'istanza non può eseguire la migrazione di processi tra operazioni richiesta/risposta in sospeso.
Attivazione di cookie per richiamare un servizio Web flusso di lavoro
Un servizio Web flusso di lavoro utilizza i cookie per tenere traccia dello stato. Se si pubblica un flusso di lavoro come servizio Web, è necessario attivare i cookie nel codice client che lo richiama. Ad esempio:
CalculatorWorkflow_WebService service = new CalculatorWorkflow_WebService();
service.CookieContainer = new System.Net.CookieContainer();
Ciò consente di eseguire chiamate a metodi nell'oggetto "service".
Vedere anche
Riferimenti
WebServiceInputActivity
WebServiceOutputActivity
WorkflowWebHostingModule
ManualWorkflowSchedulerService
Concetti
Comunicazione con altri flussi di lavoro
Utilizzo dell'attività WebServiceInputActivity
Utilizzo dell'attività WebServiceOutputActivity
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.