.NetCore3.1 配置Kestrel端口的几种方式及优先级

Kestrel 是一个跨平台的适用于 ASP.NET Core 的 Web 服务器内置在ASP.NET Core 项目中。我们使用vs2019新建一个ASP .Net Core 应用程序,可以在launchSettings.json看到Kestrel默认的地址"https://localhost:5001;http://localhost:5000",

下面我们来了解 自定义Kestrel 服务器端口的几种方式。

 

1、修改launchSettings.json中的applicationUrl地址

也可以项目右键-->属性-->调试-->web服务器设置 修改 应用URL

 

2、使用命令行

需要在启动程序Program.cs构建主机方法CreateHostBuilder中加AddCommandLine(args) ,代码:

复制代码
public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration(builder =>
            {
                builder.AddCommandLine(args);
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
复制代码

然后命令行到对应dll所在文件夹

dotnet xxxx.dll --urls "http://*:5100"//可以多个也可以一个 多个以;隔开 如 "http://*:5100;http://*:5101"

 或者项目根目录

dotnet run --urls "http://*:5100"

 

3、代码里UseUrls

在ConfigureWebHostDefaults中设置启动默认值

复制代码
public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseUrls("http://*:5101");
                webBuilder.UseStartup<Startup>();
            });
复制代码

直接Kestrel运行程序,或者命令运行

 

4、使用配置文件

在appsettings.json里添加设置 "urls": "http://*:5102"

然后启动时使用这个配置文件的配置

复制代码
public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration(builder =>
            {
                builder.AddJsonFile("appsettings.json", optional: true);
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
复制代码

 

把这几种方式都配置好,

使用命令行,会优先使用命令行的urls参数,不带urls参数的时候会使用UseUrls中配置的端口地址,如果没有配置端口则会使用配置文件

这三种方式配置,优先级是

使用命令行>UseUrls>json配置文件>launchSettings applicationUrl

posted @ 2020-10-29 17:21  指间的徘徊  阅读(1110)  评论(0编辑  收藏  举报