Amazon web services 将.Net核心应用程序部署到AWS Beanstalk

Amazon web services 将.Net核心应用程序部署到AWS Beanstalk,amazon-web-services,.net-core,amazon-elastic-beanstalk,Amazon Web Services,.net Core,Amazon Elastic Beanstalk,在我的.net core 1.1应用程序中,我有不同的配置,这些配置写在appsettings.json文件中:appsettings.dev.json、appsettings.production.json、appsettings.test.json 对于每个配置,我在AWS Beanstalk中有不同的环境。现在我通过上传zip文件部署到Beanstalk,该文件包含编译后的.net核心代码和AWS清单。 默认情况下.net core使用生产配置。我试图用几种方法来覆盖它: dotnet发

在我的.net core 1.1应用程序中,我有不同的配置,这些配置写在appsettings.json文件中:appsettings.dev.json、appsettings.production.json、appsettings.test.json

对于每个配置,我在AWS Beanstalk中有不同的环境。现在我通过上传zip文件部署到Beanstalk,该文件包含编译后的.net核心代码和AWS清单。 默认情况下.net core使用生产配置。我试图用几种方法来覆盖它:

  • dotnet发布--配置测试
  • 在Beanstalk软件配置中添加了环境变量ASPNETCORE_环境测试
  • 添加了指定ASPNETCORE_环境变量的web.config
它不起作用。我找到工作的唯一方法是.UseEnvironment(“测试”):

publicstaticvoidmain(字符串[]args)
{
var host=new WebHostBuilder()
.UseSetting(“详细错误”、“真”)
.UseKestrel()
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup()
//TODO:修复我!它用于AWS部署
.UseEnvironment(“测试”)
.Build();
host.Run();
}
这意味着在部署之前,我需要更改硬编码配置,这不是一个好的解决方案


有人知道如何处理AWS Beanstalk中的不同配置吗?

看起来像是Elastic Beanstalk中.Net核心托管中的一个bug。关于一个非常类似的问题,请参见下面的答案,了解潜在的解决方法:似乎到2020年6月29日为止,这个问题已经得到解决:看起来像是Elastic Beanstalk中.Net核心托管中的一个bug。关于潜在的解决方法,请参见对一个非常类似问题的回答:似乎截至2020年6月29日,该问题已得到解决:
    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseSetting("detailedErrors", "true")
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            // TODO: fix me! It's used for AWS deployment
            .UseEnvironment("Test")
            .Build();

        host.Run();
    }