[英]Can a single Windows Workflow instance be configured to use multiple databases?
我們將Windows Workflow引擎用於基於.NET 4.5的ASP.Net應用程序。 Windows Workflow應用程序被部署為IIS應用程序,並使用web.config文件中指定的連接信息進行了SQL持久性配置。 現在,我們希望將此應用程序(以及工作流引擎)移至雲中。
關於此雲遷移,我們對為ASP.Net(非Windows Workflow)應用程序做出的以下決定有些信心:
但是,我們不確定如何將Windows Workflow應用程序遷移到雲中。 據我了解,我們有以下選擇:
在#1中,我們主要關注性能,因為此單個數據庫上的負載增加。 對於#2,關注的是Web應用程序的可伸縮性,因為為1000個客戶提供1000個Web應用程序似乎並不正確。
這給我們留下了選擇#3,我們認為這是正確的選擇。 但是,我們不確定是否可以在Windows Workflow中完成此操作。
因此,問題是,是否可以以某種方式對Windows Workflow Web應用程序的單個實例進行配置或編程,使其與多個SQL持久性數據庫對話? 如果是,我們如何實現?
謝謝!
我從來沒有自己做過,但是我認為您可以通過實現自己的PersistenceService
來實現。 為此,請從WorkflowPersistenceService
抽象類派生,該抽象類具有諸如SaveWorkflowInstanceState
/ LoadWorkflowInstanceState
類的方法。
在這種方法中,您可以訪問WorkflowInstanceId
屬性。 我認為您可以使用此屬性來確定將特定工作流實例存儲在何處。 為了能夠從適當的數據庫加載(還原)工作流,您將需要實現一些映射,如下所示: WorkflowInstanceId
: DatabaseId
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.