ASP.NET Core 配置

launchSettings.json

launchSettings.json为启动配置文件,在项目中“Properties”文件夹中。launchSettings.json文件是ASP.NET Core应用特有的配置标准,用于应用的启动准备工作,包括环境变量,开发端口等。在launchSettings.json文件中进行配置修改,和开发者右键项目属性中所提交的更改的效果是一样的,并且支持同步更新。此文件设置了Visual Studio可以启动的不同环境。

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:58114",
      "sslPort": 44305
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "MusicStoreASPNETCoreMVC": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

配置文件默认添加了两个节点,其中“iisSettings”用于设置IIS相关的选项,而“profiles”节点定义了一系列用于表示应用启动场景。初始的launchSettings.json文件会默认创建两个Profile,一个被命名为“IIS Express”,另一个则使用当前项目名称来命名。这两个节点分别对应Visual Stuido的开始调试按钮的下拉选项,可以选择对应的选项来启动应用程序。

iisSettings是IIS的配置

  • windowsAuthentication:IIS是否启用 Windows 身份验证
  • anonymousAuthentication:IIS是否启用匿名身份验证
  • applicationUrl:指定 IIS 服务器的地址
  • sslPort:指定 IIS 服务器的https端口

profiles中的IIS Express配置

  • launchBrowser :一个布尔类型的开关,表示应用程序的时候是否自动启动浏览器
  • launchUrl:如果launchBrowser被设置为true,浏览器采用的初始化路径通过该属性进行设置。
  • environmentVariables:该属性用来设置环境变量。ASP.NET Core应用中正是利用这样一个环境变量来表示当前的部署环境。多环境的配置可以通过ASPNETCORE_ENVIRONMENT切换。
  • commandName:启动当前应用程序的命令类型,有效的选项包括IIS、IISExpress和Project,前三个选项分别表示采用IIS、IISExpress和指定的可执行文件(.exe)来启动应用程序。如果我们使用dotnet clr run命令来启动程序,对应Profile的启动命名名称应该设置为Project,设置为不是Project使用dotnet clr启动时将会报错提示“无法应用启动配置文件“(默认值)”。找不到可用的启动配置文件。”。应用程序任默认托管在Kestrel服务器的应用程序名的进程上。
  • applicationUrl:应用程序采用的URL列表,多个URL之间采用分号(“;”)进行分隔。

profiles中的“当前项目名”配置

  • 相比IIS Express,多了一个dotnetRunMessages,它是一个布尔值,是否在运行时给予反馈信息。

启动配置文件与进程托管模型配置关系

启动配置文件中commandName启动应用程序的命令类型配置与AspNetCoreHostingModel进程托管模型关系表

commandNameAspNetCoreHostingModel 的值Internal Web Server(内部服务器)External Web Server(外部服务器)
Project忽略托管设置的值只使用一个 Web 服务器 - Kestrel只使用一个 Web 服务器 - Kestrel
IISExpress进程内托管(InProcess)只使用一个 Web 服务器 - IIS Express只使用一个 Web 服务器 - IIS Express
IISExpress进程外托管(OutOfProcess)KestrelIIS Express
IIS进程内托管(InProcess)只使用一个 Web 服务器 - IIS只使用一个 Web 服务器 - IIS
IIS进程外托管(OutOfProcess)KestrelIIS

项目的启动

  • 不使用launchSettings.json文件:如果在执行dotnet run命令的时候不希望加载launchSettings.json文件,我们可以通过显式指定命令行参数–no-launch-profile来实现。应用会采用KestrelServer默认的监听地址(http://localhost:5000和https://localhost:5001)。由于launchSettings.json根本就没有被加载,所以当前执行环境从Development变成了默认的Production。
  • 显式指定URL:如果既不想使用launchSettings.json文件中定义的URL,也不想使用KestrelServer默认采用的监听地址,可以在应用程序中显式指定应用的URL。只需要在启动启动类Program中ConfigureWebHostDefaults内部添加调用IWebHostBuilder的扩展方法UseUrls指定一组以分号分隔的URL即可:webBuilder.UseKestrel() .UseUrls(“http://192.168.2.112:2314;https//28.16.49.45:3568”).UseStartup()。

appsettings.json

ASP.NET Core中的配置源:

  1. appsettings.json,appsettings.{env.EnvironmentName}.json,(相同的Key在不同的环境(开发、生产)下取对于环境的key value)。
  2. User secrets (用户机密)(项目右键管理用户机密,会在项目文件中生产UserSecretsId将secrets.json文件关联到本地储存)。
  3. Environment variables (环境变量,launchSettings.json文件environmentVariables节点下设置和项目-属性-调试-环境变量管理同步设置)。
  4. Command-line arguments (命令行参数)(clr:dotnet run Key = “xxx”)。
  5. launchSettings.json(environmentVariables节点下添加配置)
    上面的配置来源相同的Key会从下到上一次覆盖

IConfiguration是ASP.NET Core中读取各种配置、资源、信息的服务接口。
可以读取Host.CreateDefaultBuilder方法内部操作对HostBuilder配置的appsettings.json,appsettings.{env.EnvironmentName}.json,User secrets (用户机密), Environment variables (环境变量),Command-line arguments (命令行参数) 等对象加载的应用配置。
在这里插入图片描述
通过Startup类构造函数注入IConfiguration服务开启配置相关功能服务

在这里插入图片描述appsettings.json
在这里插入图片描述appsettings.Development.json
在这里插入图片描述secrets.json 存在本地
在这里插入图片描述launchSettings.json
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值