azure - ASPNETCORE_ENVIRONMENT 设置为生产时 Azure 应用服务访问数据库问题
问题描述
Azure 中的应用服务有一个名为 ASPNETCORE_ENVIRONMENT 的变量,如果不存在,则将其设置为生产。它也可以手动添加并设置为生产。当该变量设置为生产时,我的应用程序拒绝从数据库中提取任何内容,但是当它设置为开发时,一切正常。
我仔细检查了一个 appsettings.json 和 appsettings.Development.json 都指向同一个数据库。代码中不检查环境变量,所有与该检查相关的代码都被删除。
我得到的错误是“查询没有返回结果”,但是一旦环境设置为开发,相同的查询和相同的数据库就会返回所有结果。
解决方案
您是否尝试过在 startup.cs 文件中设置配置?如果没有,请尝试以下选项,看看它是否适合您。
通常从我们的 ASP.NET Core 获取这些设置的方法是访问注入的环境变量。因此,我们必须将这些环境变量加载到 Startup.cs 文件中的配置中:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
指定配置源的顺序也很重要,因为这确定了设置存在于多个位置时应用的优先级。
推荐阅读
- kotlin - Android Kotlin 双向数据绑定 BR 类错误
- wordpress - 如何在元区域的帖子正上方显示 wordpress 帖子的类别?
- python - Pandas 按过滤条件采样
- python - 如何在 Google Colab 中更新 scikit-learn?
- python - Matplotlib - 在三角形区域上绘图
- mongodb - MongoDB中的管道功能,如何进行连接
- javascript - vscode 格式不格式化
- r - R中的矩阵/数据帧循环问题
- rust - 有没有办法计算和限制 gaol 运行的指令数量?
- java - 番石榴缓存 RemovalListener 未调用