为什么Net Framework 4.5天蓝色部署会忽略应用程序服务连接字符串

问题描述 投票:1回答:2

背景:

我正在将其中一个Net Framework 4.5项目移至一个DevOps管道中,该管道将部署到我们的App服务中。

为了确保没有将任何应用程序机密复制到源代码控制中,我已经这样更新了Web.config连接字符串:

<connectionStrings configSource="connectionStrings.config"></connectionStrings>

connectionStrings.config未提交给源代码管理。相反,我们有一个示例版本,该版本在源代码管理中没有有效的字符串,详细信息在这里:

<connectionStrings>
  <clear/>
  <add name="EFDbContext" connectionString="Data Source=XXXXX\SQLEXPRESS;Initial Catalog=XXXXX;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />
</connectionStrings>

在Azure App服务中,我们设置了正确的连接字符串。

Azure connection string

在管道中,应用程序正在成功构建,但是在部署之后,该应用程序未使用Azure应用程序服务中指定的连接字符串,并引发了以下错误:

The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.

问题:

为什么应用程序忽略了应用程序服务环境变量?

我的印象是,Azure中设置的连接字符串优先。正确吗?

c# asp.net azure azure-devops
2个回答
0
投票

0
投票

对于ASP.NET和ASP.NET Core开发人员,请在App Service就像将它们设置在Web.config,但您在App Service中设置的值将覆盖Web.config。您可以保留开发设置(例如,数据库Web.config中的文件和生产机密(例如,SQL数据库)凭据)在App Service中安全。相同的代码使用本地调试时进行开发设置,并且使用部署到Azure时的生产机密。

我建议检查在App Service中部署的文件以进行确认。可以通过门户网站中的Kudoor the App Service Editor完成。
© www.soinside.com 2019 - 2024. All rights reserved.