.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

 


免責聲明!

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



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