WF 创建 SQL 持久性数据库
Windows Workflow Foundation 安裝程序并不安裝 SqlWorkflowPersistenceService 服務所需的數據庫,但會安裝為這些服務創建和配置數據庫所用的 SQL 腳本。 本部分詳細說明正確配置供 SqlWorkflowPersistenceService 服務使用的 SQL Server 數據庫所需執行的步驟。
由 Windows Workflow Foundation 安裝的 SQL 服務使用 SQL Server 來存儲信息。 對于這些任務,可以使用 Microsoft SQL Server 2005 Express、SQL Server 2000 或更高版本或 SQL Server 2000 Desktop Engine (MSDE)。
創建 SQL 持久性數據庫
在 SQL Server 2005 Express、SQL Server 2000 或更高版本或 SQL Server 2000 Desktop Engine (MSDE) 中,使用以下 SQL 查詢語句創建一個名為 WorkflowPersistenceStore 的新數據庫:CREATE DATABASE WorkflowPersistenceStore。
在 SQL 查詢分析器工作區中,從可用數據庫列表中選擇在步驟 1 中創建的數據庫。
在“文件”菜單上,單擊“打開”,然后打開 SQL 腳本 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<語言>\SqlPersistence_Schema。
通過單擊“執行”或按 F5 來運行查詢,以便創建 SQL 持久性服務表。
在“文件”菜單上,單擊“打開”,然后打開 SQL 腳本 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<語言>\SqlPersistence_Logic。
通過單擊“執行”或按 F5 來運行查詢,以便創建 SQL 持久性服務存儲過程。
向運行時引擎添加 SqlWorkflowPersistenceService
可以編程方式或通過使用應用程序配置文件,向 Windows Workflow Foundation 運行時引擎添加運行時服務。
修改 SqlWorkflowPersistenceService 的 app.config
在 app.config 文件的 Services 元素中,創建一個名為 add 的新元素。
向 add 元素添加名為 type 的屬性,該屬性的值為 System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35。
向 add 元素添加名為 connectionString 的屬性,該屬性的值為 Initial Catalog=WorkflowPersistenceStore;Data Source=localhost;Integrated Security=SSPI。
注意:
| 可能需要修改連接字符串,具體取決于 SQL Server 的配置。 此處顯示的連接字符串假定,數據庫名稱為 WorkflowPersistenceStore,且 SQL Server 已安裝在用于應用程序開發的同一個系統上。 |
通過添加與 SqlWorkflowPersistenceService 類中定義的可配置屬性 (property) 相對應的屬性 (attribute),對 SqlWorkflowPersistenceService 服務進行配置。
例如,若要指定應在工作流進入空閑狀態時將其卸載(例如在使用了 DelayActivity 活動的情況下),請向 add 元素添加名為 UnloadOnIdle 的屬性,并為該屬性指定 true 值。
| <add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionString="Initial Catalog=WorkflowPersistenceStore;Data Source=localhost;Integrated Security=SSPI;" UnloadOnIdle="true"/> |
以編程方式向運行時引擎添加 SqlWorkflowPersistenceService
調用 WorkflowRuntime 類中定義的 AddService 方法,傳遞 SqlWorkflowPersistenceService 的新實例。
下面的示例演示如何使用與前面的過程中顯示的示例相同的配置來創建 SqlWorkflowPersistenceService 服務。 在此示例中,instanceOwnershipDuration 設置為 TimeSpan.MaxValue,而 loadingInterval 設置為 2 分鐘。 這些值是在 SqlWorkflowPersistenceService 類中使用的默認值。
[C#]
| using (WorkflowRuntime workflowRuntime = new WorkflowRuntime()) { // Create the SqlWorkflowPersistenceService. string connectionString = ="Initial Catalog=WorkflowPersistenceStore;Data Source=localhost;Integrated Security=SSPI;" bool unloadOnIdle = true; TimeSpan instanceOwnershipDuration = TimeSpan.MaxValue; TimeSpan loadingInterval = new TimeSpan(0, 2, 0); SqlWorkflowPersistenceService persistService = new SqlWorkflowPersistenceService(connectionString, unloadOnIdle, instanceOwnershipDuration, loadingInterval); // Add the SqlWorkflowPersistenceService to the runtime engine. workflowRuntime.AddService( persistService ); // ... } |
總結
以上是生活随笔為你收集整理的WF 创建 SQL 持久性数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 债券和债券基金的区别 看看你适合哪一种
- 下一篇: 谷歌、雅虎支持中文域名搜索 有助提升SE