asp.net-core - 如何修复:尽管在构建管道中设置了变量,但在 Azure Devops 中,连接字符串为空
问题描述
我在 Azure Devops 中的构建管道有问题,来自构建管道的变量没有替换 appsettings.json 中的空配置。下面有更多细节。
我目前的测试项目是使用 asp.net 核心技术构建的,并连接到 SQL Server。我还使用 Entity Framework Core 和 autofac。
要连接到 SQL 服务器,我使用 appsettings.json 配置:
{
"ConnectionStrings": {
"AzureDbConnectionString": ""
}
}
但我的凭据存储在 secrets.json
{
"ConnectionStrings": {
"AzureDbConnectionString": "Server=tcp:servername-db-srv.database.windows.net,1433;Initial Catalog=dbname-db;Persist Security Info=False;User ID=user;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
}
}
我已经配置了我的构建管道变量:名称:
ConnectionStrings--AzureDbConnectionString
价值:
Server=tcp:servername-db-srv.database.windows.net,1433;Initial Catalog=dbname-db;Persist Security Info=False;User ID=user;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
在构建管道中运行生成迁移脚本时会出现此问题。
Autofac.Core.DependencyResolutionException: An exception was thrown while activating λ:Microsoft.EntityFrameworkCore.DbContextOptions[] -> λ:Microsoft.EntityFrameworkCore.DbContextOptions -> λ:Microsoft.EntityFrameworkCore.DbContextOptions`1[[AspNetAutofacAzure02.Data.SchoolContext, AspNetAutofacAzure02, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]. ---> System.ArgumentException: The string argument 'connectionString' cannot be empty.
at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName)
就像我提到的那样,生成脚本时似乎没有使用该变量。
我在这里做错什么了吗?
解决方案
你试过了ConnectionStrings:AzureDbConnectionString
吗?这是覆盖 appsettings.json 的正常格式。或ConnectionStrings__AzureDbConnectionString
。
如果该值来自 keyvault 格式ConnectionStrings--AzureDbConnectionString
,则只需映射一个新变量:ConnectionStrings:AzureDbConnectionString
=$(ConnectionStrings--AzureDbConnectionString)
推荐阅读
- javascript - 在插件中动态初始化多个输入字段
- reactjs - 对现有的 React.js 项目慢慢实现 redux
- wordpress - WooCommerce 不包括运费计算器的运输类别
- python - 如何组合多个 python 正则表达式参数?
- keras - 有没有办法在通话期间更改变量?
- bash - 如何将输出存储为变量
- intellij-idea - 有没有办法从 kotlin 项目的 build.gradle 获取版本?
- reactjs - 维护单个组件的多个状态
- javascript - jQuery Draggable - 在 html5 原生 Drag And Drop api 事件上创建可拖动并开始拖动
- javascript - javascript中的数组映射更改数组中的所有元素