共用方式為


作法:設定執行個體儲存、查詢與控制提供者

開發儲存、查詢或控制提供者之後,您必須使用 作法:註冊自訂提供者所述的步驟來註冊提供者。提供者的安裝程式應該執行如下清單所述的步驟:

  1. 執行會在電腦上建立實體執行個體儲存區並安裝提供者組件的指令碼檔案。

  2. 將執行個體儲存提供者的定義新增到根 Web.config 檔案。

  3. 將執行個體儲存區的定義新增到 Web.config 檔案。

  4. 在與服務關聯的組態檔中設定服務的執行個體儲存區行為。

此主題接下來會說明如何將提供者定義、儲存區定義與使用該儲存區的儲存區行為新增至組態檔。

執行個體儲存提供者定義

對於您計畫搭配 Microsoft AppFabric 1.1 for Windows Server 使用的每種執行個體儲存區,您都必須在根 Web.config 檔案中定義執行個體儲存提供者。執行個體儲存提供者定義包含下列參數:

注意

您可以在兩個不同的位置找到電腦的 web.config 檔案:在 <磁碟機>\Windows\Microsoft.NET\Framework\v4.0.30319\Config 資料夾中,以及放置申請的目錄。

  • 名稱。指定執行個體儲存提供者的名稱。這是必要參數。

  • 儲存提供者。指定實作 InstanceStoreProvider 抽象類別之類型的完整名稱,以及包含該類型的組件。這是必要參數。

  • 查詢提供者。指定實作 InstanceQueryProvider 抽象類別之類型的完整名稱,以及包含該類型的組件。這是必要參數。若儲存區未實作查詢提供者,您可以使用空字串做為此參數的值。

  • 控制提供者。指定實作 InstanceControlProvider 抽象類別之類型的完整名稱,以及包含該類型的組件。這是必要參數。若儲存區未實作控制提供者,您可以使用空字串做為此參數的值。

AppFabric 安裝程式會為「SQL 工作流程執行個體儲存區」的執行個體儲存提供者新增儲存提供者定義,如下列範例所示。

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

在安裝自訂執行個體儲存提供者期間,您必須將儲存提供者定義新增至根 Web.config 檔案,就像 AppFabric 安裝程式為 SQL 執行個體提供者新增定義一樣。如上述範例所示,提供者定義是 Microsoft AppFabric 1.1 for Windows Server 組態區段 (Microsoft.ApplicationServer) 的一部分。因此,安裝自訂儲存提供者之前,必須先安裝 AppFabric。若在安裝 AppFabric 之前先安裝儲存提供者,您必須手動相對應的儲存提供者組態區段新增至根 Web.config 檔案。此外,當您解除安裝 AppFabric 時,整個 Microsoft.ApplicationServer 區段都會被移除。在解除安裝 AppFabric 之前或之後,您可能想要移除自訂執行個體儲存提供者 (不是定義,而是包含儲存提供者類型的組件)。

執行個體儲存區定義

執行個體儲存區定義會定義特定類型的儲存區。儲存區定義包含下列參數:

  1. 名稱。指定執行個體儲存區的名稱。這是必要參數。此參數的值可以是空字串。

  2. 描述。指定執行個體儲存區的描述。此為選用參數。此參數的預設值是空字串。

  3. 儲存提供者。指定執行個體儲存區之儲存提供者的名稱。這是必要參數。

  4. 額外屬性。指定以名稱/值對表示的選用屬性。儲存區位址 (例如 SQL 執行個體儲存提供者的連接字串) 必須透過這些參數之一來設定。否則,「工作流程管理服務」(WMS) 將無法連線到該儲存區。

下列範例顯示在根 Web.config 檔案中定義的執行個體儲存區。您必須以相同方式新增自訂執行個體儲存區。

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

較低範圍會自動繼承在較高範圍定義的儲存區。您可以使用 <remove /> 或 </clear> 元素來移除從範圍繼承的儲存區定義。

執行個體儲存區行為延伸

您應該為執行個體儲存區定義行為延伸元素,以便使用者將服務與您的執行個體儲存區關聯。AppFabric 安裝程式會將下列行為延伸元素新增至 machine.config 檔案,讓您可以搭配您的服務使用 sqlWorkflowInstanceStoreBehavior。在安裝儲存提供者期間,您必須以相同方式新增儲存區行為定義。

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

行為延伸與區段處理常式 (例如,machine.config 中的 SqlWorkflowInstanceStore 與 workflowInstanceControl) 會定義無名稱行為,且預設設定為根等級)。將儲存區類型的特定行為延伸與區段處理常式新增至 machine.config 檔案。AppFabric 安裝程式會自動新增 SqlWorkflowInstanceStore 與 WorkflowInstanceControl 行為的行為延伸。

設定服務以使用行為與儲存區

若要為服務啟用持續性功能,您必須在與應用程式或服務關聯的 Web.config 檔案中定義執行個體儲存區行為,並將服務與該行為關聯。下列範例顯示 sqlWorkflowInstanceStore 行為定義範例。connectionStringName 的值是設定為執行個體儲存區定義,該定義接著會指向連接字串。

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

SQL 工作流程執行個體儲存區組態

Microsoft AppFabric 1.1 for Windows Server 安裝程式會在根 Web.config 檔案中建立「SQL 工作流程執行個體儲存區」的執行個體儲存提供者定義。您可以使用「Microsoft AppFabric 1.1 for Windows Server 設定工具」,它會執行下列功能:

  • 在根 Web.config 檔案中建立「SQL 工作流程執行個體儲存區」的定義。此定義包含連接字串,該連接字串會參照 ApplicationServerExtension 資料庫。

  • 建立實體執行個體儲存區,亦即名為 ApplicationServerExtensions 的 SQL Server 資料庫。

  • 安裝「工作流程管理服務」(WMS) 做為 Windows 服務。新增預設的 WMS 組態區段到根 Web.config 檔案,其中包含指示 WMS 自動探索執行個體儲存區的設定。

  2012-03-05