Condividi tramite


Procedura: configurare provider di archiviazione, query e controllo di istanza

Una volta terminato lo sviluppo di un provider di archiviazione, di query o di controllo, è necessario registrarlo eseguendo la procedura descritta in Procedura: registrare provider personalizzati. Il programma di installazione del provider deve eseguire passi simili a quelli descritti nell'elenco seguente:

  1. Eseguire i file di script per creare l'archiviazione istanza fisica e installare gli assembly del provider nel computer.

  2. Aggiungere una definizione per il provider di archiviazione istanza al file Web.config radice.

  3. Aggiungere una definizione per l'archiviazione istanza al file Web.config radice.

  4. Configurare il comportamento dell'archiviazione istanza per un servizio nel file di configurazione associato al servizio.

Nella parte rimanente di questo argomento viene descritta l'aggiunta di una definizione di provider, una definizione di archiviazione e una definizione di comportamento dell'archiviazione che utilizza l'archiviazione in un file di configurazione.

Definizione di provider di archiviazione istanza

È necessario definire un provider di archiviazione istanza nel file Web.config radice per ciascun tipo di archiviazione istanza da utilizzare con Microsoft AppFabric 1.1 per Windows Server. La definizione di provider di archiviazione istanza contiene i parametri seguenti:

Nota

È possibile trovare il file web.config del computer in due percorsi diversi: nella cartella <unità>\Windows\Microsoft.NET\Framework\v4.0.30319\Config e nella directory in cui si trova l'applicazione.

  • Nome. Specifica il nome del provider di archiviazione istanza. Questo parametro è obbligatorio.

  • Provider di archiviazione. Specifica il nome completo del tipo che implementa la classe astratta InstanceStoreProvider e l'assembly che contiene il tipo. Questo parametro è obbligatorio.

  • Provider di query. Specifica il nome completo del tipo che implementa la classe astratta InstanceQueryProvider e l'assembly che contiene il tipo. Questo parametro è obbligatorio. Se l'archiviazione non implementa un provider di query, è possibile specificare una stringa vuota come valore per questo parametro.

  • Provider di controllo. Specifica il nome completo del tipo che implementa la classe astratta InstanceControlProvider e l'assembly che contiene il tipo. Questo parametro è obbligatorio. Se l'archiviazione non implementa un provider di controllo, è possibile specificare una stringa vuota come valore per questo parametro.

Il programma di installazione di AppFabric aggiunge una definizione di provider di archiviazione per il provider di archiviazione istanza per l'archiviazione istanza di flusso di lavoro SQL, come indicato nell'esempio seguente.

<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 l'installazione del provider di archiviazione istanza personalizzato, è necessario aggiungere la definizione di provider di archiviazione al file Web.config radice, analogamente a quanto accade quando durante l'installazione di AppFabric viene aggiunta la definizione per il provider di istanza SQL. Come è possibile notare nell'esempio precedente, la definizione di provider fa parte della sezione relativa alla configurazione di Microsoft AppFabric 1.1 per Windows Server (Microsoft.ApplicationServer). Di conseguenza, è necessario installare AppFabric prima di installare i provider di archiviazione personalizzati. Se si installa un provider di archiviazione prima di installare AppFabric, è necessario aggiungere manualmente le sezioni di configurazione del provider di archiviazione corrispondenti al file Web.config radice. Quando si disinstalla AppFabric, viene rimossa l'intera sezione Microsoft.ApplicationServer. Potrebbe essere opportuno rimuovere il provider di archiviazione istanza personalizzato (non la definizione, ma l'assembly che contiene il tipo di provider di archiviazione) prima o dopo la disinstallazione di AppFabric.

Definizione di archiviazione istanza

Una definizione di archiviazione istanza definisce un'archiviazione di un tipo specifico. Una definizione di archiviazione contiene i parametri seguenti:

  1. Nome. Specifica il nome dell'archiviazione di istanza. Questo parametro è obbligatorio. Il valore di questo parametro può essere una stringa vuota.

  2. Descrizione. Specifica la descrizione dell'archiviazione istanza. Questo parametro è facoltativo. Il valore predefinito di questo parametro è una stringa vuota.

  3. Provider di archiviazione. Specifica il nome del provider di archiviazione per l'archiviazione istanza. Questo parametro è obbligatorio.

  4. Ulteriori attributi. Specifica gli ulteriori attributi rappresentati come coppie nome-valore. È necessario definire un indirizzo di archiviazione (ad esempio una stringa di connessione per il provider di archiviazione istanza SQL) tramite uno di questi parametri. In caso contrario, il Servizio Gestione flussi di lavoro non sarà in grado di collegarsi all'archiviazione.

Nell'esempio seguente vengono mostrate le archiviazioni istanza definite nel file Web.config radice. Sarà necessario aggiungere eventuali archiviazioni istanza personalizzate in un modo simile.

<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>

Un'archiviazione definita in ambito superiore viene ereditata automaticamente dagli ambiti inferiori. È possibile rimuovere la definizione di archiviazione ereditata da un ambito utilizzando l'elemento <remove/> o </clear>.

Estensione del comportamento dell'archiviazione istanza

È necessario definire un elemento di estensione del funzionamento per l'archiviazione istanza in modo che un utente possa associare un servizio all'archiviazione istanza. L'installazione di AppFabric aggiunge il seguente elemento di estensione del comportamento al file machine.config in modo che sia possibile utilizzare sqlWorkflowInstanceStoreBehavior con il servizio. È necessario aggiungere la definizione per il comportamento dell'archiviazione in modo simile durante l'installazione del provider di archiviazione.

<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>

Le estensioni del comportamento e gli handler di sezione, ad esempio SqlWorkflowInstanceStore e workflowInstanceControl nel file machine.config. definiscono un comportamento senza nome con le impostazioni predefinite al livello di radice. Aggiungere estensioni del comportamento e handler di sezione specifici del tipo di archiviazione al file machine.config. AppFabric L'installazione aggiunge automaticamente l'estensione del comportamento per i comportamenti SqlWorkflowInstanceStore e WorkflowInstanceControl.

Configurare un servizio per l'utilizzo del comportamento e dell'archiviazione

Per abilitare il salvataggio permanente per un servizio, è necessario definire un comportamento di archiviazione istanza nel file Web.config associato a un'applicazione o a un servizio e associare il servizio al comportamento. Nell'esempio seguente viene mostrata una definizione di esempio del comportamento sqlWorkflowInstanceStore. Il valore di connectionStringName è impostato su una definizione di archiviazione istanza, che a sua volta punta a una stringa di connessione.

<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>

Configurazione dell'archiviazione istanza di flusso di lavoro SQL

Il programma di installazione di Microsoft AppFabric 1.1 per Windows Server crea una definizione per il provider di archiviazione istanza per l'archiviazione istanza di flusso di lavoro SQL nel file Web.config radice. È possibile utilizzare lo strumento di configurazione di Microsoft AppFabric 1.1 per Windows Server che attiva le funzionalità seguenti:

  • Crea una definizione di un'archiviazione istanza di flusso di lavoro SQL nel file Web.config radice. Tale definizione contiene una stringa di connessione che fa riferimento al database ApplicationServerExtension.

  • Crea un'archiviazione istanza fisica, un database SQL Server denominato ApplicationServerExtensions.

  • Installa il servizio Gestione flussi di lavoro come servizio Windows. Aggiunge la sezione di configurazione del servizio Gestione flussi di lavoro al file Web.config radice con un'impostazione che indica al servizio di rilevare automaticamente le archiviazioni istanza.

  2012-03-05