Azure Web 服务 - 在运行时更改数据库连接字符串

Azure web service - change database connection string at runtime

场景是这样的: 应用程序想要在数据库之间切换,以避免在数据库充满新数据时出现长时间的停机。

所以,我们的想法是用数据填充一个数据库,然后告诉 Web 服务(通过 http 调用)从现在开始使用 这个 数据库。

几个 weeks/days 之后,我们获得了新数据。所以我们花了几个小时填充另一个数据库,然后告诉 运行 Web 服务切换。

那么,一个人会怎么做呢? Web 服务中的数据库连接字符串应该在 Web 服务重新启动后继续存在。

整个过程都在 Azure 上运行。 Web 服务是否有任何地方可以存储和修改设置?

多多问候!

只需在设置中设置几个连接字符串,然后对您的应用程序进行编程,使其根据需要在它们之间切换。作为一种选择,您还可以拥有一些通用数据库,您可以在其中存储包括连接字符串在内的设置到您的 "data" 数据库,然后再次对您的应用程序进行编程以进行切换。

存储 Azure 网站/Web 应用程序连接字符串的 recommended 位置是应用程序设置/连接字符串!。

在内部,这些存储为运行时可用的环境变量。

从应用程序本身或其他应用程序中通过 Powershell、REST 推送更新是一件相当微不足道的事情。我不确定您是否需要重新启动网络应用程序来获取更改。

例如,您可以有 ConnectionString1ConnectionString2。然后在您的应用程序中,您将能够在运行时在两者之间切换(使用 connectionstring = ConnectionString1

如果您需要记住哪个是当前的,您将需要另一个数据源,它可以是文件系统文件中的任何东西!到 Azure 存储 Table 值,到另一个数据库。这将是一个静态数据库,您不会更改它,它只是用来存储站点的配置数据。

如果您需要注入新的连接字符串,您可以通过 Powershell 进行。还有一个 REST API,您可以在您的应用程序中使用它来进行内部管理。

Azure Web Apps 有针对这个确切问题的专用解决方案。

在设置部分下,有应用程序设置。应用程序设置有连接字符串部分。您可以将此功能用于应用程序中的连接字符串处理。

然后您可以通过 Azure Web 界面或 Azure Powershell 更改此连接字符串。

有关如何使用 Azure 连接字符串功能的文章:https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/