2017-08-09 95 views
0

我试图让我的头在.netcore配置应用程序的方式。.NET Core,并行运行具有不同配置的相同应用程序?

SZENARIO

我运行客户端1和客户端2相同的REST API(应用程序)的DEV-环境在同一台服务器上。 我们有环境特定的配置以及客户特定的配置。

“旧”的方式:

随着web.config中转换,我创建了DEV-客户端1和DEV-客户机程序构建配置,并相应设置值......这一切都工作得很好。

“新”方式:

由于appsettings.json依赖于Windows环境变量(每个服务器一个),因此遇到麻烦。我无法找到迄今为止在具有不同配置的相同服务器上并行运行应用程序的方法。

我可能错过了配置应用程序的新方法,因此,任何帮助,将不胜感激。

在一个典型的新的.NET的核心Web应用程序

回答

0

,你会看到这个代码在Startup.cs:

 var configuration = new ConfigurationBuilder() 
      .AddJsonFile("appsettings.json") 
      .AddJsonFile($"appsettings.{environment.EnvironmentName}.json", optional: true) 
      .AddEnvironmentVariables() 
      .Build(); 

所有你需要做的就是添加其他的AppSettings与特定客户设置,如文件:

  .AddJsonFile($"appsettings.client.json", optional: true) 

然后让您的构建脚本以正确的构建配置复制到appsettings.client.jsonConfigurationBuilder将拾取所有源中的设置并将它们编译到configuration对象中。

还检查了完整的文档:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration

+0

感谢您的答复戴夫。我知道微软文档和配置生成器部分。如果我正确理解你,那么构建脚本将决定是否要选择正确的文件。例如。我的构建服务器现在对客户端文件的处理进行了整理......如果这是唯一的方法,为什么我会为appsettings.environment困扰呢?我只是认为与web.config转换相比,环境变量带来了很大的灵活性... – adini

+0

appsettings。{environment} .json和环境变量仅适用于每个环境更改的设置,如Test,Staging,Production ,即连接字符串,端点等,这些设置将影响整个盒子上的应用程序。我假设你在生产环境中的同一个盒子上有多个客户端?那么您需要为每个客户端(每个应用程序池)分别建立一个可供您的构建或部署过程生成的appsettings,或者需要一个多租户方案,这是另一个蠕虫的完整方案。 –

+0

这就是我如何理解“新”的方式.netcore配置的作品。我在构建过程中已经交换了文件,但是我正在寻找与之前相同的解决方案。我仍然认为这是一个倒退的转折。例如。在构建过程中,我运行int。测试一个sep。数据库在我的开发服务器(同一台机器)上。为此,它已经失败。有人可能会认为连接字符串不应该进入app.config,但这不是重点。如果能够在构建上传递“环境参数”或与构建配置相似,那将会很不错... – adini

相关问题