ASPNETCORE_ENVIRONMENT设置为正式版时,Azure App Services访问数据库问题

时间:2019-08-28 17:14:46

标签: azure asp.net-core web-applications

Azure中的App Services具有一个名为ASPNETCORE_ENVIRONMENT的变量,如果不存在该变量将被设置为Production。也可以手动添加并设置为生产。当该变量设置为Production时,我的应用程序拒绝从数据库中提取任何内容,但是将其设置为Development时,一切正常。

我再次检查了appsettings.json和appsettings.Development.json都指向同一个数据库。代码检查中没有检查环境变量,所有与该检查有关的代码均被删除。

我得到的错误是“查询未返回任何结果”,但是一旦环境设置为“开发”,则相同的查询和相同的数据库将返回所有结果。

1 个答案:

答案 0 :(得分:0)

您是否尝试过在startup.cs文件中设置配置? 如果没有,请尝试以下选项,看看是否适合您。

通常,从我们的ASP.NET Core获取这些设置的方法是访问注入的环境变量。因此,我们必须将这些环境变量加载到Startup.cs文件中的Configuration中:

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();
    }

指定配置源的顺序也很重要,因为这确定了设置在多个位置时应用设置的优先级。

希望这会有所帮助!