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

相關問題