在 Azure 应用程序设置中配置我的连接字符串,并在我的 web.config 中将其配置为环境变量

Configure my connection string in the Azure application setting and configure it in my web.config as an environment variable

我在 Azure 中有一个 Web 应用程序,我在其应用程序设置中配置了 connectionStrgin,但我不知道如何将此配置设置为应用程序中的环境变量 web.config (.Net)。

有人有一些文档或知道如何使这成为可能,到目前为止我已经查看了 Microsoft 和其他站点的文档以进行故障排除,但我还没有找到解决方案

当您在应用程序设置中设置 key/value 对时,key/value 将在运行时注入到您的配置中。同样,对于您的连接字符串,它们会在运行时注入到您的配置中。这些设置将在运行时覆盖 Web.Config 中的任何设置。如果 Azure 中缺少设置,您的程序将在 web.config 中查找。您使用 ConfigurationManager.AppSettings["keyname"];

检索应用程序中的设置

https://docs.microsoft.com/en-us/azure/app-service/web-sites-configure#app-settings and here https://buildazure.com/2015/11/30/azure-web-app-application-settings/

阅读更多内容

连接字符串

对于像 ASP.NET 这样的 .NET 应用程序,这些连接字符串会在运行时注入到您的 .NET 配置 connectionStrings 设置中,覆盖键等于链接数据库名称的现有条目。

这些设置还将在运行时作为环境变量可用,并以连接类型为前缀。环境变量前缀如下:

SQL 服务器:SQLCONNSTR_
MySQL: MYSQLCONNSTR_
SQL 数据库:SQLAZURECONNSTR_
自定义:CUSTOMCONNSTR_

您使用 ConfigurationManager.ConnectionStrings["keyname"]; 检索应用程序中的设置。

then in my web.config I should have the connectionString blank and will automatically use the connectionString of the application settings?

是的,是的。当您在 Azure 应用程序设置和 web.config、the azure settings will override web.config 中都有连接字符串时。你可以在本地测试时在web.config中设置key/value。

谢谢大家的帮助,我成功地解决了我的问题。实际上在 .Net 中连接链被自动替换,但在我的情况下连接继续出现问题。要解决这个问题,将数据库配置为 "Custom" 并从我的 web.config.

的代码中删除连接字符串的值

<connectionStrings>
<add name="hidhiddenname1"
     connectionString=""
     providerName="Gale.Db.Factories.SQLServerFactory"/>
<add name="hidhiddenname2"
     connectionString=""
     providerName="Gale.Db.Factories.SQLServerFactory"/>
</connectionStrings>

我希望这可以帮助其他人:D

我进一步修改了 Nicolas Herrera 提供的答案,由于安全原因,我们无法将计划文本连接字符串添加到应用程序服务配置部分,最重要的是,我遇到了计划文本连接字符串的格式问题,所以最终从配置部分中的密钥保管库读取连接字符串值

连接字符串名称="your ConnectionString Key name"

值=@Microsoft.KeyVault(SecretUri="your key vault uri")

Type = Custom(它必须是 custom ,否则它不会工作)但是如果你想看看什么对你有用,你可以再次尝试 diff type

仅供参考,我的配置中仍然有连接字符串值,因此我可以 运行 我的应用程序在本地进行调试,连接字符串值按环境替换,在应用程序服务中,如 Microsoft 文档所述

对于 ASP.NET 和 ASP.NET 核心开发人员,在 App Service 中设置连接字符串就像在 Web.config 中设置它们一样,但是您在 App Service 中设置的值会覆盖在Web.config。您可以将开发设置(例如,数据库文件)安全地保存在 Web.config 中,并将生产机密(例如,SQL 数据库凭据)安全地保存在应用服务中。相同的代码在本地调试时使用你的开发设置,在部署到 Azure 时使用你的生产机密。