Asp.net core 1 appsettings.production.json没有更新连接字符串

本文关键字:更新 连接 字符串 json production net core appsettings Asp | 更新日期: 2023-09-27 18:04:50

我有一个使用。net core RC1在IIS上运行的生产应用程序。我重写了应用程序,因为公司希望它在。net core1上,因为那是官方发布的。

在我的。net core RC1应用程序中,我有config。在生产版本中,我只是包含了我想要覆盖的设置,比如连接字符串。

在。net core1我有应用程序。appsettings.production.json。然而,连接字符串似乎没有得到更新。它似乎使用了原始appsettings.json中的localdb。

appsettings.json:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)''mssqllocaldb;Database=aspnet-DecisionEff-b32ae861-2422-4f88-839c-2a6d599fee45;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

appsettings.production.json:

{
    "ConnectionStrings": {
      "DefaultConnection": "Server=mydb.server;Database=DbName;User ID=User;Password=password;Trusted_Connection=False; Connection Timeout= 30;"
    }
}

在我的启动文件中,我确实将其设置为查找生产:

var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

以上是在我在RC1中所做的工作之后建模的。是否有其他东西改变了,所以连接字符串没有更新?如果我将生产数据库连接字符串放在appsettings中。Json文件,那么应用程序在我们的生产服务器上运行良好。因此,它不会从appsettings.production.json文件中提取设置。我知道它正在正确地读取环境,因为我正在打印它,并且它与预期的一样。

如何在。net core 1 web应用程序中提供不同的开发和生产db设置?

任何帮助都会很感激。我显然忽略了什么。

更新:当我在本地机器上运行此程序时,将ASPNETCORE_ENVIRONMENT设置为Production,它将使用正确的连接字符串。因此,web应用程序在生产环境中看到了正确的环境,并且可以使用连接字符串。在构建期间是否需要配置一些东西来发送不同的环境设置?或者有一种方法可以打印不同的设置从.json文件的环境?

更新2:

我注意到,当我发布应用程序时,只有应用程序。Json,它只具有localdb连接。似乎没有生成任何appsettings.production.json文件。在构建过程中,您是否需要在某些地方指定这些不同的设置?

Asp.net core 1 appsettings.production.json没有更新连接字符串

您可能忘记设置用于设置环境的环境变量。您必须将ASPNETCORE_ENVIRONMENT设置为Production