Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como ativar persistência para fluxos de trabalho e serviços de fluxo de trabalho.
Ativar persistência para fluxos de trabalho
Você pode associar um armazenamento de instância com um WorkflowApplication usando a propriedade InstanceStore da classe WorkflowApplication. O método de Persist salva ou persiste um fluxo de trabalho no armazenamento de instância associado ao aplicativo. O método Unload persiste um workflow no armazenamento de instâncias e então remove a instância da memória. O método de Carregar carrega um fluxo de trabalho na memória usando os dados de fluxo de trabalho armazenados no armazenamento de persistência de instância.
O método de Persistir executa as seguintes etapas:
- Pausa o agendador de fluxo de trabalho e aguarda até que o fluxo de trabalho entre o estado ocioso.
- Persiste ou salva o fluxo de trabalho no armazenamento de persistência.
- Retoma o agendador de fluxo de trabalho.
O método de Descarregar executa as seguintes etapas:
- Pausa o agendador de fluxo de trabalho e aguarda até que o fluxo de trabalho entre o estado ocioso.
- Persiste ou salva o fluxo de trabalho no repositório de persistência.
- Descartar a instância de fluxo de trabalho na memória.
Os métodos Persist e Unload bloquearão enquanto um workflow estiver em uma zona de não-persistência até que o workflow saia da zona de não-persistência. O método continua com a operação de persistência ou descarregamento após a conclusão da zona sem persistência. Se a zona sem persistência não for concluída antes do tempo limite, ou se o processo de persistência demorar demais, um TimeoutException será lançado.
Habilitar persistência no código
O membro de DurableInstancingOptions da classe WorkflowServiceHost tem uma propriedade chamada InstanceStore que você pode usar para associar um armazenamento de instância com o WorkflowServiceHost.
// wsh is an instance of WorkflowServiceHost class
wsh.DurableInstancingOptions.InstanceStore = new SqlWorkflowInstanceStore();
Quando o WorkflowServiceHost é aberto, a persistência é automaticamente ativada se o DurableInstancingOptions.InstanceStore não é nulo.
Normalmente, um comportamento do serviço utiliza a propriedade InstanceStore para fornecer o armazenamento concreto de instância a ser usado com o host de serviço de fluxo de trabalho. Por exemplo, SqlWorkflowInstanceStoreBehavior cria uma instância do SqlWorkflowInstanceStore, a configura e atribui a DurableInstancingOptions.InstanceStore.
Habilitar a persistência usando um arquivo de configuração do aplicativo
Persistência pode ser ativada usando um arquivo de configuração do aplicativo adicionando o seguinte código ao seu arquivo app.config ou web.config:
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="myBehavior">
<sqlWorkflowInstanceStore connectionString="Data Source=myDatabaseServer;Initial Catalog=myPersistenceDatabase" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Importante
A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. Se você estiver se conectando ao SQL do Azure, as Identidades gerenciadas para recursos do Azure é o método de autenticação recomendado.