.Net Core 解读launchSettings.json

本文详细介绍了ASP.NET Core的启动配置文件launchSettings.json,包括其在项目中的位置、作用以及如何配置IIS和不同启动场景。通过launchSettings.json,可以设定环境变量、开发端口、IIS设置,并管理不同环境的启动配置。同时,文章还讨论了如何在不使用launchSettings.json的情况下指定应用启动的URL和服务器。
摘要由CSDN通过智能技术生成

ASP.NET Core 是一个全新的Web开发平台, 微软在它上面构建了MVC; SingalR; GRPC: Orleans 这些广泛使用的Web框架. 

这篇文章介绍启动配置文件launchSettings.json 

二、Properties——launchSettings.json

启动配置文件, 你可以在项目中的文件夹"Properties" 中找到该文件. laungchSettings.json 文件是ASP.NET Core 应用特有的配置标准, 用于应用的启动准备工作, 包括环境变量, 开发端口等. 在lauchSettings.json文件中进行配置的效果和右键项目:属性中所提交的更改效果是一样的. 并且支持同步更新. 此文件设置了在 VS可以启动的不同环境, 例:

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

三、launchSettings.json代码说明

每一个Profile相当于定义了应用的启动场景, 相关的设置包括应用启动的方式, 环境变量和URL等. 具体的设置包括:

1) iisSettings 是 IIS 的配置

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

2、profiles中的IIS Express配置

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

3、profiles中的NET5.Api配置

  • 相比IIS Express,这里多了一个dotnetRunMessages,它是一个布尔值,是否在运行时给予反馈信息。
  • 四、项目的启动

    1、不使用launchSettings.json文件

    如果在执行dotnet run命令的时候不希望加载launchSettings.json文件,我们可以通过显式指定命令行参数--no-launch-profile来实现。如下图所示,我们在执行dotnet run命令时指定了--no-launch-profile参数,所以应用会采用KestrelServer默认的监听地址(http://localhost:5000和https://localhost:5001)。由于launchSettings.json根本就没有被加载,所以当前执行环境从Development变成了默认的Production。

    2、显式指定URL

    如果既不想使用launchSettings.json文件中定义的URL,也不想使用KestrelServer默认采用的监听地址,我们可以在应用程序中显式指定应用的URL。如下面的代码片段所示,我们只需要调用IWebHostBuilder的扩展方法UseUrls指定一组以分号分隔的URL即可。

    复制代码

    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.Hosting;
    
    namespace NET5.Api
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                CreateHostBuilder(args).Build().Run();
            }
    
            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseKestrel()
                        .UseUrls("http://192.168.2.112:2314;https//28.16.49.45:3568").
                        UseStartup<Startup>();
                    });
        }
    }

    复制代码

    3、项目启动使用的服务器

    commandNameAspNetCoreHostingModel 的值Internal Web Server(内部服务器)External Web Server(外部服务器)
    项目忽略托管设置的值只使用一个 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
     

    要获取其它更多属性的详细信息,请转到此链接:http://json.schemastore.org/launchsettings 。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值