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

时间:2016-01-19 14:19:23

标签: azure asp.net-web-api2 azure-sql-database load-balancing azure-web-sites

场景是这样的: 应用程序希望在数据库之间切换,以避免在数据库充满新数据时冗长的下载时间。

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

几周/几天后,我们获得了新数据。因此,我们花了几个小时填充其他数据库,然后告诉正在运行的Web服务切换。

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

整个事情都在天蓝色上运行。 Web服务是否可以存储和修改设置?

很多问候!

3 个答案:

答案 0 :(得分:2)

Azure Web Apps为此确切问题提供了专用解决方案。

在设置部分下,有应用程序设置。应用程序设置具有Connections字符串部分您可以在应用程序中使用此功能进行连接字符串处理。

enter image description here

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

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

答案 1 :(得分:1)

在设置中只需要几个连接字符串,并根据需要对应用程序进行编程以在它们之间切换。作为一个选项,您还可以使用一些通用数据库来存储设置,包括连接字符串到“数据”数据库,再次编程您的应用程序以进行切换。

答案 2 :(得分:1)

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

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

通过Powershell,通过REST从App本身或其他应用程序推送更新,这将是一件相当简单的事情。我不确定您是否需要重新启动网络应用以获取更改。

例如,您可以拥有ConnectionString1ConnectionString2。然后在您的应用程序中,您可以在运行时(使用connectionstring = ConnectionString1

在两者之间切换

如果你需要记住哪一个是最新的,你需要另一个数据源,可以是文件系统文件中的任何数据源!到Azure存储表值到另一个数据库。这将是一个静态数据库,您无法更改,只需存储此站点的配置数据即可。

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