c# - 为什么net Framework 4.5 azure部署忽略应用程序服务连接字符串

标签 c# asp.net azure azure-devops

背景:

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

为了确保没有任何应用程序 secret 被复制到源代码管理中,我已更新了 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 应用服务中,我们设置了正确的连接字符串。

Azure connection string

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

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

问题:

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

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

最佳答案

我在您添加为“EFDbContext”的设置中看到了冲突,但在您正在搜索 LocalSqlServer 的代码中。检查您的应用程序设置中是否也有相同的名称

关于c# - 为什么net Framework 4.5 azure部署忽略应用程序服务连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60166126/

相关文章:

c# - 每次按下按钮时如何在文本文件中打印新行?

c# - CS1061 : 'ASP.station_pages_stationfield_aspx' does not contain a definition for 'resizeIframe'

asp.net - 如何正确测量 ASP.NET Core 请求持续时间?

azure - 如何使用 AzureRM 提供程序在 Terraform 中指定资源提供程序版本

azure - 使用 TIBCO 订阅 Azure 主题

c# - 如何在不指定通用参数的情况下将实现实例转换为接口(interface)(实现知道)?

c# - 类层次结构定义 VS(自动)生成的导航属性

c# - 通过减少库存更新数据库 C# 和 mysql

javascript - 如何在 TIVO 设备上启动 asp.net 网站?

Azure AD OAuth 客户端凭据授予流程