asp.net-core - Azure devops ASP.Net Core EF 迁移生产连接字符串 null
问题描述
我正在尝试使用 Azure devops 中的构建管道构建我的 ASP.Net Core,并在运行脚本以编写 ef 迁移脚本时出错。
我故意在 appsettings.json 文件中没有生产连接字符串。在应用服务的配置部分填充的生产连接字符串。我知道 Web 应用程序可以连接到我使用 Visual Studio 发布的数据库,并且已经在生产数据库中创建了表,并且还可以读取/保存到数据库/从数据库中读取/保存。
我正在运行的脚本是:
dotnet ef migrations script -i -o $(build.artifactstagingdirectory)\scripts.sql --project $(Build.SourcesDirectory)\MyApp\MyApp.csproj --startup-project $(Build.SourcesDirectory)\MyApp\MyApp.csproj
脚本输出中的错误是:
System.ArgumentNullException:值不能为空。参数名称:连接字符串
所以我的问题是如何在没有 appsettings.json 文件中的连接字符串的情况下将生产连接字符串传递给 ef migrations 命令?
解决方案
Azure DevOps 无法直接访问您的 WebApp 配置。您可以使用Azure API的自定义脚本来阅读它们,但我不建议这样做,因为该 API 还可以获取有关您的 Azure 设置的其他信息。
我建议您将配置(或其共享部分)移动到 Azure Key Vault,然后您可以轻松地使用来自.NET Core 应用程序和Azure DevOps的配置。
之后,当 Azure DevOps 在其环境中配置了您配置的 ConnectionString 时,通常的dotnet ef migrations
命令应该可以工作。
推荐阅读
- reactjs - 在反应项目中在哪里导入可动手做的 css 文件
- html - 如何将文本和图像换行在同一行 - Wordpress
- angular - 如何创建我的 Angular 应用程序的副本(使用 firebase)
- javascript - TypeScript 找不到命名空间
- charts - 如何在 Google 条形图中绘制具有特定值的附加水平网格线(不是平均值)
- javascript - 为什么 React material-ui modal 不能正确打开?
- javascript - 当我搜索 Giphy API 时,搜索字段变为空
- oracle - 18c 与 19c 上的 Oracle 编号问题
- json - 如何在 Angular 8 中运行循环并读取 URL?
- java - 如何在 java 中优化 .kafka 生产者?