微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – asp.net core 1 appsettings.production.json不更新连接字符串

我使用在IIS上运行的.net核心RC1生产了一个应用程序.我重新编写了应用程序,因为公司希望它在.net core1上,因为那是正式版本.

在我的.net核心RC1应用程序中,我有config.json和config.production.json,在生产版本中,我只是包含了我想要覆盖的设置,如连接字符串.这工作得很好.

在.net core1中我有appsettings.json和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中所做的工作.有没有其他的东西改变,所以连接字符串不是udpated?如果我将生产数据库连接字符串放在appsettings.json文件中,那么应用程序在我们的生产服务器上运行正常.所以它不是从appsettings.production.json文件提取设置.我知道它正在正确地阅读环境,因为我正在打印它并且它是预期的.

您如何在.net core 1 Web应用程序中提供不同的开发和生产数据库设置?

任何帮助,将不胜感激.我显然忽略了一些东西.

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

更新2:
我注意到,当我发布应用程序时,只有appsettings.json只有localdb连接.似乎没有生成任何appsettings.production.json文件.现在是否需要在构建期间指定这些不同的设置应该遇到的地方?

解决方法

您可能忘记设置环境变量来设置环境.您必须将ASPNETCORE_ENVIRONMENT设置为Production

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐