我们正在为基于 .NET 4.5 的 ASP.Net 应用程序使用 Windows 工作流引擎。Windows Workflow 应用程序部署为 IIS 应用程序,并使用 web.config 文件中指定的连接信息配置 SQL 持久性。我们现在想要将此应用程序(连同工作流引擎)移动到云中。
关于这次云迁移,我们对我们为 ASP.Net(非 Windows 工作流)应用程序做出的以下决定有些信心:
- 每个客户都有一个单独的数据库
- 一个 Web 应用程序将为多个客户提供服务
但是,我们不太确定如何将 Windows Workflow 应用程序迁移到云端。据我了解,我们有以下选择:
- 使用单实例/单数据库方法。在这种方法中,我们将有一个工作流实例和一个工作流数据库模式为多个客户服务。
- 使用多实例/多数据库方法。在这种方法中,我们将为每个客户拥有一个单独的 IIS 应用程序以及一个单独的数据库模式。
- 使用单实例/多数据库方法。在这种方法中,我们将拥有一个能够与多个工作流持久性数据库(每个客户一个)对话的工作流实例。
对于 #1,我们主要关注的是随着单个数据库负载增加的性能。对于 #2,关注的是 Web 应用程序的可扩展性,因为为 1000 个客户提供 1000 个 Web 应用程序似乎并不合适。
这给我们留下了选项#3,我们认为这是正确的方法。但是,我们不确定这是否可以在 Windows Workflow 中完成。
所以问题是,能否以某种方式配置或编程 Windows Workflow Web 应用程序的单个实例以与多个 SQL 持久性数据库通信?如果是,我们怎样才能做到这一点?
谢谢!