.Net Core環境綁定及配置launchSettings.json


1、Asp.net Core的默認環境配置在項目Properties——》launchSettings.json下

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:5001",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Dev"
      }
    },
    "Ers.Api": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "https://localhost:5001;",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "QA"
      }
    }
  }
}

請注意,我們有兩個配置信息:

  • IIS Express 和 StudentManagement

當我們通過按CTRL + F5或只是F5從 Visual Studio 運行項目時。 默認情況下,使用調用配置文件名稱"commandName": "IISExpress",。 另外一種情況,如果我們使用.NET Core CLI(dotnet run)運行項目,則使用帶有"commandName": "Project",的配置文件 。

我們可以通過單擊 Visual Studio 中的下拉列表來更改要使用的配置文件中 .commandName 屬性,修改默認設置。 8 1

默認值可以是:

  • 項目
  • IISExpress
  • IIS

此值與項目文件中的AspNetCoreHostingModel元素的值會有對應關系,會一起指定要啟動的內部和外部 Web 服務器(反向代理服務器)。通過“donet run ”命令時調用的是項目"Ers.Api"的配置,通過vs2019的IIS press調用的是"IIS Express"里的配置

commandName AspNetCoreHostingModel 的值 Internal Web Server(內部服務器) External Web Server(外部服務器)
項目 忽略托管設置的值 只使用一個 Web 服務器 - Kestrel 只使用一個 Web 服務器 - Kestrel
IISExpress 進程內托管(InProcess) 只使用一個 Web 服務器 - IIS Express 只使用一個 Web 服務器 - IIS Express
IISExpress 進程外托管(OutOfProcess) Kestrel IIS Express
IIS 進程內托管(InProcess) 只使用一個 Web 服務器 - IIS 只使用一個 Web 服務器 - IIS
IIS 進程外托管(OutOfProcess) Kestrel IIS

您還可以通過直接編輯 launchSettings.json 文件中的設置,也可以使用 Visual Studio 提供的圖形用戶界面(GUI)更改設置。

通過 GUI 來設置

  • 在 Visual Studio 的解決方案資源管理器中右鍵單擊項目名稱,然后從上下文菜單中選擇“屬性”。 單擊項目“屬性”窗口中的“調試”選項卡,如下圖

使用 GUI 我們可以更改launchSettings.json文件中的設置。

注意,環境變量“ASPNETCORE_ENVIRONMENT”設置的默認設置為“Development”。

我們可以將此值更改為Staging或Production,具體取決於我們是在Staging還是Production環境中運行此項目。

我們還可以添加新的環境變量,比如測試環境QA。

Startup示例配置,在構造方法里IHostingEnvironment會讀取launchSettings.json里的信息,此時env會讀取到對應的ASPNETCORE_ENVIRONMENT的值到EnvironmentName

public Startup(IHostingEnvironment env)
        {
            var build = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile($"Configs/{env.EnvironmentName}/appsettings.json", optional: false)
                .AddJsonFile($"Configs/{env.EnvironmentName}/cashesettings.json", optional: false)
                .AddJsonFile($"Configs/{env.EnvironmentName}/ERSsettings.json", optional: false)
                .AddEnvironmentVariables();
            Configuration = build.Build();
            AppConfig.Configuration = build.Build();
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM