在IIS中覆盖appsettings.json

伊纳斯丹

我有一个.net核心Web项目,该项目正在Windows(10或Server)上发布到IIS。我似乎无法让IIS通过配置编辑器提供连接字符串。我希望在这里使用连接字符串,以便在每次部署后都不会覆盖它。

我尝试使用ASPNETCORE_ConnectionStrings__DefaultConnectionConnectionStrings:DefaultConnection但该工作都没有,我总是收到500错误,指出连接字符串不能为null。

我在这里想念什么?

这是我Startup.cs文件的一部分:请注意,此应用程序是在默认配置为您完成此操作之前的一段时间。

 public class Startup
 {
        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
                .AddUserSecrets<Startup>()
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }
}

编辑:

我已经安装了一个全新的.Net Core 2.2应用程序。即使使用较新的程序/启动程序。连接字符串未通过。

public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args) //<-- adds config.AddEnvironmentVariables();
                .UseStartup<Startup>();
    }

在此处输入图片说明

MindingData

我认为您需要从环境变量中删除ASPNETCORE_前缀(只是您的连接字符串而不是ASPNETCORE_ENVIRONMENT)。

我在这里查看环境变量配置提供程序的Microsoft源代码:https : //github.com/aspnet/Configuration/blob/d469707ab18eef7ed0002f00175a9ad5b0f36250/src/Config.EnvironmentVariables/EnvironmentVariablesConfigurationProvider.cs

如果需要,它确实需要一个“前缀”,但是当我查看“ CreateDefaultBuilder”的源代码时:https : //github.com/aspnet/MetaPackages/blob/master/src/Microsoft.AspNetCore/WebHost .cs#L177

它只是用一个空的前缀参数来调用它,这意味着您根本不应该使用任何前缀:

config.AddEnvironmentVariables();

当然,您可以使用您选择的前缀手动将对调用的添加添加到AddEnvironmentVariables中,然后您也可以在其前面添加环境变量

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用appsettings.Production.json中的设置覆盖appsettings.json中的数组设置

门户中的Azure应用服务应用设置不会覆盖appsettings.json值

IIS是否保护appsettings.json?

VS 2019 中 IIS Express 调试器的 .Net Core MVC appsettings.json 文件在哪里

使用ASPNETCORE_ENVIRONMENT覆盖Azure上的appsettings.json

如何为不同的操作系统覆盖appsettings.json?

Azure App Service Deploy-无法覆盖appsettings.json

使用 Env 变量覆盖 appsettings.json 数组

如何使用appsettings.json覆盖serilog设置

无法使用环境变量覆盖appsettings.json设置

Web.Config AppSettings中的Json

appsettings.json 中的配置类

在appsettings.json中重复元素

无法从appsettings.json中读取数据

更改appsettings.json中的默认文档

Json在Python中覆盖自身

appsettings.json 中 IncludeScopes 的 JSON 验证失败

如何使用appsettings.Development.json删除appsettings.json中的节点?

.Net Core appsettings.json最佳做法-覆盖开发设置(反之亦然)?

ASP.NET Core(最新)-appsettings.json ConnectionString 未覆盖 Azure

Azure应用程序设置未覆盖我的appsettings.json文件值

Azure webjobs不会使用Azure应用程序设置覆盖appsettings.json

使用Serilog时如何覆盖appsettings.json中指定的应用程序名称?

appsettings.json中ConnectionString中的SQL别名问题

从通用类中的 appsettings.json 文件中获取值

在AzureDevOps替换令牌中的appsettings中设置JSON密钥

在appSettings.json文件中展开环境变量

阅读Main Program.cs中的appsettings.json

从.net Core中的appsettings.json获取价值