【问题标题】:How to differentiate Databases in ASP.Net Core 2.1 Application based on Enviroment?如何根据环境区分 ASP.Net Core 2.1 应用程序中的数据库?
【发布时间】:2018-10-10 09:26:06
【问题描述】:

我正在构建这个 ASP.Net Core MVC 应用程序。事情是我想为我的数据库保留三个不同的环境,比如开发、沙盒和生产。有什么方法可以在我的应用程序设置文件中提及,还是需要像往常一样在部署中手动指定?就像我在 Elastic Beanstalk 上部署一个独立的应用程序一样,我现在已经使用所需的数据库编辑了 appsettings.json 文件,但这就像一次只有一个数据库。

"ConnectionStrings": {
"DefaultConnection": "Server = tcp:<Remote DB Server>,1433; Database = <DB>; User Id = <DB Username>; Password = <DB PASS>;"

TL:DR;根据 appsettings.json 文件中的环境,我可以有多个连接字符串吗?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-core amazon-elastic-beanstalk


    【解决方案1】:

    根据官方文档的configuration by environment 章节,您有以下几种选择:

    要按环境加载配置,我们建议:

    第一个选项是针对特定环境配置的一种非常常见的解决方案,它只涉及在文件名中包含环境名称的附加 appsettings.json 文件。默认模板已经附带了一个 appsettings.Development.json 文件,该文件仅为 Development 环境加载。同样,您可以创建一个appsettings.Sandbox.json 和一个appsettings.Production.json 文件,分别使用SandboxProduction 环境加载。

    配置文件被加载除了到普通的appsettings.json文件,所以你可以使用它来指定一般的默认值,并且只覆盖环境特定的appsettings.&lt;Environment&gt;.json文件中的环境特定的东西.

    请注意,您应始终尽量避免将生产机密放入文件中,尤其是那些致力于源代码控制的文件。对于那些,您还可以使用环境变量来覆盖特定值。例如,环境变量 ConnectionStrings__DefaultConnection 可能包含您的应用程序的连接字符串,并会覆盖 appsettings 文件之一中配置的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      相关资源
      最近更新 更多