Condividi tramite


Opzioni di hosting di flussi di lavoro

Nella maggior parte degli esempi di Windows Workflow Foundation vengono usati flussi di lavoro ospitati in un'applicazione console, ma non si tratta di uno scenario realistico per i flussi di lavoro generalmente usati. I flussi di lavoro nelle applicazioni aziendali reali saranno ospitati in processi persistenti, ad esempio un servizio Windows creato dallo sviluppatore o un'applicazione server come IIS 7.0 o AppFabric. Di seguito sono riportate le differenze tra questi approcci.

Hosting di flussi di lavoro in IIS con Windows AppFabric

IIS con AppFabric è l'host preferito per i flussi di lavoro. L'applicazione host per i flussi di lavoro che usano AppFabric è Windows Activation Service che rimuove la dipendenza di HTTP su IIS indipendente.

Hosting di flussi di lavoro in IIS indipendente

L'utilizzo di IIS 7.0 indipendente non è consigliato perché con AppFabric sono disponibili strumenti di gestione e monitoraggio che facilitano la manutenzione delle applicazioni in esecuzione. I flussi di lavoro dovrebbero essere ospitati esclusivamente in IIS 7.0 solo in caso di problemi di infrastruttura per il passaggio ad AppFabric.

Avviso

IIS 7.0 ricicla periodicamente i pool di applicazioni per diversi motivi. Quando un pool di applicazioni viene riciclato, IIS smette di accettare i messaggi del pool precedente e crea un'istanza di un nuovo pool di applicazioni per accettare le nuove richieste. Se il flusso di lavoro continua dopo l'invio di una risposta, IIS 7.0 non rileva il lavoro in esecuzione e potrebbe riciclare il pool di applicazioni host. In questo caso, il flusso di lavoro verrà interrotto e i servizi di rilevamento registreranno un messaggio 1004 - WorkflowInstanceAborted con il campo relativo al motivo vuoto.

Se si usa la persistenza, l'host deve esplicitamente riavviare le istanze arrestate dall'ultimo punto di persistenza.

Se si usa AppFabric, il servizio di gestione del flusso di lavoro eventualmente riprenderà il flusso di lavoro dall'ultimo il punto di persistenza riuscito se si usa la persistenza. Se la persistenza non viene usata e il flusso di lavoro esegue operazioni all'esterno di un modello di risposta-richiesta, i dati verranno persi quando il flusso di lavoro viene interrotto.

Hosting di un flusso di lavoro in un servizio Windows personalizzato

La creazione di un servizio personalizzato di flusso di lavoro per ospitare il flusso di lavoro richiede allo sviluppatore di duplicare molte funzionalità fornite in modo predefinito da AppFabric, ma consente maggiore flessibilità con le funzionalità personalizzate. Da tenere in considerazione solo se AppFabric dimostra di non essere un'opzione.