Share via


Opções de hospedagem de fluxo de trabalho

A maioria dos exemplos do WF (Windows Workflow Foundation) usa fluxos de trabalho que são hospedados em um aplicativo de console, mas esse não é um cenário realista para fluxos de trabalho do mundo real. Os fluxos de trabalho em aplicativos comerciais reais serão hospedados em processos persistentes: um serviço Windows criado pelo desenvolvedor ou um aplicativo de servidor como o IIS 7.0 ou o AppFabric. As diferenças entre essas abordagens são as seguintes.

Fluxos de trabalho de hospedagem no IIS com o Windows AppFabric

Usar o IIS com AppFabric é o host preferido para fluxos de trabalho. O aplicativo de host para fluxos de trabalho que usam AppFabric é o WAS (Serviços de Ativação do Windows), que remove a dependência de HTTP em IIS somente.

Fluxos de trabalho de hospedagem apenas no IIS

O uso apenas do IIS 7.0 não é recomendado, pois há ferramentas de gerenciamento e monitoramento disponíveis no AppFabric que facilitam a manutenção de aplicativos em execução. Os fluxos de trabalho somente devem ser hospedados no IIS 7.0 se houver preocupações com a infraestrutura com a migração para o AppFabric.

Aviso

O IIS 7.0 recicla pools de aplicativos periodicamente por várias razões. Quando um pool de aplicativos é reciclado, o IIS para de aceitar mensagens para o pool antigo e cria uma instância de um pool de aplicativos para aceitar novas solicitações. Se um fluxo de trabalho continuar funcionando depois de enviar uma resposta, o IIS 7.0 não estará ciente do trabalho que está sendo feito e poderá reciclar o pool de aplicativos de hospedagem. Se isso acontecer, o fluxo de trabalho será anulado e os serviços de acompanhamento gravarão uma mensagem 1004 – WorkflowInstanceAborted com um campo de Motivo vazio.

Se a persistência for usada, o host deverá reiniciar explicitamente as instâncias anuladas a partir do último ponto de persistência.

Se o AppFabric for usado, o serviço de gerenciamento de fluxo de trabalho finalmente retomará o fluxo de trabalho a partir do último ponto de persistência bem-sucedido se a persistência tiver sido usada. Se nenhuma persistência tiver sido usada e o fluxo de trabalho executar operações fora de um padrão de solicitação/resposta, os dados serão perdidos quando o fluxo de trabalho for anulado.

Hospedando um fluxo de trabalho em um serviço do Windows personalizado

Criar um serviço de fluxo de trabalho personalizado para hospedar o fluxo de trabalho exigirá que o desenvolvedor duplique muito da funcionalidade fornecida pronta pelo AppFabric, mas permitirá mais flexibilidade com funcionalidade personalizada. Essa opção somente deverá ser considerada se o AppFabric provar não ser uma opção.