Share via


Como: configurar repositório de instância, consulta e Provedores de controle

Depois de concluir o desenvolvimento de um provedor de repositório, consulta ou controle, você precisará registrar o provedor, utilizando as etapas descritas em Como: registrar provedores personalizados. O programa de instalação do servidor deve realizar etapas semelhantes àquelas descritas na lista a seguir:

  1. Execute arquivos de script que criam o armazenamento físico da instância e instale assemblies do provedor no computador.

  2. Adicione uma definição para o provedor de armazenamento da instância ao arquivo raiz Web.config.

  3. Adicione uma definição para o armazenamento da instância ao arquivo Web.config.

  4. Configure o comportamento do armazenamento da instância para um serviço no arquivo de configuração associado ao serviço.

A continuação deste tópico descreve como adicionar uma definição de provedor, uma definição de armazenamento e um comportamento de armazenamento que utiliza o armazenamento para um arquivo de configuração.

Definição do provedor de armazenamento da instância

Você precisa definir um provedor de armazenamento da instância no arquivo raiz Web.config para cada tipo de armazenamento de instância que deseja usar com o Windows Server AppFabric. A definição de provedor de armazenamento da instância contém os parâmetros a seguir:

Observação

O arquivo web.config para o computador pode ser encontrado em dois lugares diferentes: na pasta <unidade>\Windows\Microsoft.NET\Framework\v4.0.30319\Config e no diretório onde o aplicativo foi colocado.

  • Nome. Especifique o nome do provedor de armazenamento da instância. Esse parâmetro é obrigatório.

  • Provedor de armazenamento. Especifique o nome totalmente qualificado do tipo que implementa a classe abstrata InstanceStoreProvider e o assembly que contém o tipo. Esse parâmetro é obrigatório.

  • Provedor de consulta. Especifique o nome totalmente qualificado do tipo que implementa a classe abstrata InstanceQueryProvider e o assembly que contém o tipo. Esse parâmetro é obrigatório. Se o armazenamento não implementar um provedor de consulta, você poderá especificar uma cadeia de caracteres vazia como um valor para esse parâmetro.

  • Provedor de controle. Especifique o nome totalmente qualificado do tipo que implementa a classe abstrata InstanceControlProvider e o assembly que contém o tipo. Esse parâmetro é obrigatório. Se o armazenamento não implementar um provedor de controle, você poderá especificar uma cadeia de caracteres vazia como um valor para esse parâmetro.

O programa de instalação do AppFabric adiciona uma definição de provedor de armazenamento para o provedor de armazenamento da instância para o Armazenamento de instância de fluxo de trabalho do SQL, conforme mostrado no exemplo a seguir.

<configuration>
    <microsoft.applicationServer>
        <persistence>
            <instanceStoreProviders>
                <add name="sqlStoreProvider"
                    storeProvider="Microsoft.ApplicationServer.StoreProvider.Sql.SqlWorkflowInstanceStoreFactory, Microsoft.ApplicationServer.StoreProvider, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                    queryProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Query.SqlInstanceQueryProvider, Microsoft.ApplicationServer.StoreManagement, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                    controlProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Control.SqlInstanceControlProvider, Microsoft.ApplicationServer.StoreManagement, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </instanceStoreProviders>
        </persistence>
    </microsoft.applicationServer>
</configuration>

Durante a instalação do seu provedor personalizado de armazenamento da instância, você precisa adicionar a definição do provedor de armazenamento ao arquivo raiz Web.config da mesma maneira que instalação do AppFabric adiciona a definição ao provedor de instância do SQL. Como você pôde ver no exemplo anterior, a definição do provedor faz parte da seção de configuração (Microsoft.ApplicationServer) do Windows Server AppFabric. Portanto, você precisa instalar o AppFabric antes de instalar os seus provedores personalizados de armazenamento. Se instalar um provedor de armazenamento antes de instalar o AppFabric, você precisará adicionar manualmente as seções de configuração do provedor de armazenamento correspondentes ao arquivo raiz Web.config. Quando você desinstalar o AppFabric, toda a seção Microsoft.ApplicationServer será removida. Talvez seja necessário remover o provedor personalizado de armazenamento da instância (não a definição, mas o assembly que contém o tipo de provedor de armazenamento) antes ou depois da desinstalação do AppFabric.

Definição de armazenamento da instância

Uma definição de armazenamento da instância define o armazenamento de um tipo específico. Uma definição de armazenamento contém os parâmetros a seguir:

  1. Nome. Especifique o nome do armazenamento da instância. Esse parâmetro é obrigatório. O valor desse parâmetro pode ser uma cadeia de caracteres vazia.

  2. Descrição. Especifique a descrição do armazenamento da instância. Esse parâmetro é opcional. O valor padrão para esse parâmetro é uma cadeia de caracteres vazia.

  3. Provedor de armazenamento. Especifique o nome do provedor de armazenamento para o armazenamento de instância. Esse parâmetro é obrigatório.

  4. Atributos adicionais. Especifique os atributos adicionais que são representados como pares nome-valor. Um endereço de armazenamento (como uma cadeia de conexão para o provedor de armazenamento da instância do SQL) precisa ser definido por meio de um desses parâmetros. Caso contrário, o WMS (serviço Gerenciamento de Fluxo de Trabalho) não poderá se conectar ao armazenamento.

O exemplo a seguir mostra os armazenamentos de instância definidos no arquivo raiz Web.config. Você precisará adicionar qualquer armazenamento de instância personalizado de maneira semelhante.

<configuration>
    <microsoft.applicationServer>
        <persistence>
            <instanceStores>
                <add name="storeA"
                    provider="sqlStoreProvider"
                    connectionStringName="storeA-str" />
                <add name="storeB"
                    provider="sqlStoreProvider"
                    connectionStringName="storeB-str" />
                <add name="storeC"
                    provider="MyStoreProvider"
                    MyAddressStringName="storeC-str"
                    value1="rrr"
                    value2="sss"
                    value3="ttt" />
            </instanceStores>
        </persistence>
    </microsoft.applicationServer>
</configuration>

Um armazenamento definido em um escopo mais alto é herdado pelos escopos mais baixos, automaticamente. É possível remover a definição de armazenamento herdado a partir de um escopo, utilizando o elemento <remover /> ou </limpar>.

Extensão de comportamento do armazenamento da instância.

Você deve definir um elemento de extensão de comportamento ao armazenamento de instância para que um usuário possa associar um serviço com o seu armazenamento de instância. A instalação do AppFabric adiciona o seguinte elemento de extensão de comportamento ao arquivo machine.config para que você possa usar o sqlWorkflowInstanceStoreBehavior com o seu serviço. Você precisa adicionar a definição para o seu comportamento de armazenamento, de maneira semelhante, durante a instalação do provedor de armazenamento.

<system.serviceModel>
    <extensions>
        <behaviorExtensions>
            <add name="sqlWorkflowInstanceStore" type="System.ServiceModel.Activities.Configuration.SqlWorkflowInstanceStoreElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </behaviorExtensions>
    </extensions>
</system.serviceModel>

As extensões de comportamento e os manipuladores de seção, como SqlWorkflowInstanceStore e workflowInstanceControl no arquivo machine.config, definem um comportamento sem nome com configurações padrão no nível da raiz. Adicione extensões de comportamento específicas de tipo de armazenamento e manipuladores de seção ao arquivo machine.config. A instalação do AppFabric adiciona automaticamente a extensão de comportamento para os comportamentos SqlWorkflowInstanceStore e WorkflowInstanceControl.

Configure um serviço para utilizar o comportamento e o armazenamento

Para habilitar a persistência para um serviço, você precisa definir um comportamento de armazenamento da instância no arquivo Web.config associado a um aplicativo ou serviço e associá-lo ao comportamento. O exemplo a seguir mostra uma definição de exemplo do comportamento sqlWorkflowInstanceStore. O valor de connectionStringName é definido para uma definição de armazenamento da instância que aponta para uma cadeia de conexão.

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name=”myServiceBehavior”>
                <sqlWorkflowInstanceStore
                    connectionStringName="storeA-str"
                    instanceCompletionAction=”DeleteAll”
                    instanceLockedExceptionAction=”NoRetry”
                    hostLockRenewalPeriod=”00:00:30”
                    runnableInstanceDetectionPeriod=”00:00:10” />
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

Configuração de armazenamento de instância de fluxo de trabalho do SQL

O programa de instalação do Windows Server AppFabric cria uma definição para o provedor de armazenamento da instância para o armazenamento de instância de fluxo de trabalho do SQL no arquivo raiz Web.config. Você pode utilizar a ferramenta Configuração do Windows Server AppFabric que realiza as funções a seguir:

  • Cria uma definição de um armazenamento de instância de fluxo de trabalho do SQL no arquivo raiz Web.config. Essa definição contém uma cadeia de conexão que se refere ao banco de dados ApplicationServerExtension.

  • Cria um armazenamento físico de instância, um banco de dados do SQL Server denominado ApplicationServerExtensions.

  • Instala o WMS (serviço Gerenciamento de Fluxo de Trabalho) como um serviço do Windows. Adiciona a seção de configuração padrão do WMS ao arquivo raiz Web.config com uma configuração que instrui o WMS a detectar automaticamente armazenamentos de instância.

  2011-12-05