【发布时间】:2022-01-15 19:27:27
【问题描述】:
我正在开发一个 Web 应用程序,将由 3 个部门使用,每个部门都有自己的数据库,因为如果出现问题(比如上周发生的人类操作不当...... .) 而且我必须为一个部门恢复数据库,我不想影响其他 2 个部门。
我想要做的是,当我的应用程序为 Dept-A 启动时,我希望应用程序使用 Database-A,以此类推用于 Dept-B 和 Dept-C。
我知道可以在 Page_Init 代码中将数据源设置为正确的数据库以在当前页面的代码中使用,但是在我的 ASPX 页面中,我所有的 SqlDatasource 都有一个指向 web.config 的 ConnectionString,这就是正在阻止我。如果在启动时我可以动态设置要在 webconfig 连接字符串中使用的数据库名称,那将很容易,但遗憾的是这似乎不可能。
目前我的解决方案是将我的应用部署到 3 个不同的网站,每个网站都有相同的代码,但它们的 webconfig 将包含适合它们的数据库。
这可行,但我只是想确定没有更简单的解决方案。
谢谢!
【问题讨论】:
-
多租户应用程序不能解决您的问题吗?
-
@JordyDeweer:多租户应用是解决这个问题的方法
-
致 OP:您不想“在启动时动态设置”,或者更确切地说,您希望“启动”表示每个请求的开始。假设您稍微更改应用程序以使其成为多租户,请阅读您有哪些选项。这绝对是可能的,我们有适用于数千名租户的应用程序。
-
感谢您的回答,我第一次听说多租户应用程序。事实上,我的应用程序仍在开发中,但非常先进,已经被一个部门使用。起初,我在许多表中使用带有 ID_DEP 的单个数据库来分隔数据。但就像我说的,我希望为每个部门分开数据库。我搜索了一个关于如何构建多租户应用程序但没有成功的示例...我在 ASP NET 中使用 VS 2017 和 SQL Server,我在哪里可以找到我需要为此做的更改?谢谢。
标签: asp.net database web-config