代码之家  ›  专栏  ›  技术社区  ›  Volker

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

  •  2
  • Volker  · 技术社区  · 10 年前

    情况如下: 应用程序希望在数据库之间切换,以避免在数据库中充满新数据时长时间等待。

    因此,想法是用数据填充一个数据库,然后告诉web服务(通过http调用)使用 这 数据库。

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

    那么,人们会怎么做呢?web服务中的数据库连接字符串应在web服务重新启动后仍然有效。

    整件事都是天蓝的。web服务是否可以存储和修改设置?

    很多问候!

    3 回复  |  直到 10 年前
        1
  •  2
  •   Peter Stegnar    10 年前

    Azure Web应用程序为此问题提供了专门的解决方案。

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

    enter image description here

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

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

        2
  •  1
  •   Andrei    10 年前

    只需在设置中有几个连接字符串,并根据需要编程应用程序在它们之间切换即可。作为一种选择,你也可以有一些通用数据库,在那里你可以将设置(包括连接字符串)存储到你的“数据”数据库中,然后只需编程你的应用程序就可以进行切换。

        3
  •  1
  •   Michael B    10 年前

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

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

    这对于通过Powershell、通过REST从应用程序本身或另一个应用程序向其推送更新来说是一件相当微不足道的事情。我不确定您是否需要重新启动web应用程序来获取更改。

    例如,你可以 ConnectionString1 和 ConnectionString2 。然后在应用程序中,您可以在运行时在两者之间切换(使用 connectionstring = ConnectionString1 )

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

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