Asp.net-Mvc
如何通過 netcore3.1 中的環境變數更改 Kestrel (AspNetCore) 偵聽埠
我有 aspnetcore3.1 項目,我想為 Kestrel 設置自定義埠(預設 5000 除外)。我可以
Program.cs通過添加來做到這一點Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.ConfigureKestrel(options => { options.ListenLocalhost(80); }); webBuilder.UseStartup<Startup>(); })但這不適用於我的情況,所以想知道,環境變數如何做到這一點?
如本文所述,有多種方法可以實現此目的。
- ASPNETCORE_URLS 環境變數。
- –urls 命令行參數。
- urls 主機配置密鑰。
- UseUrls 擴展方法。
要使用環境變數實現此目的,只需創建一個名為的環境變數
ASPNETCORE_URLS並將值設置為您要使用的 URL通常這將是
http://+:<port>或https://+:<port>在撰寫此答案時,上面未描述的另一種方法是通過 hostsettings.json 文件。
您可以通過創建 hostsettings.json 配置文件並添加
urls密鑰來配置 URL 和埠,然後IConfigurationBuilder在建構WebHostBuilder.這是連結中的程式碼片段,以防此連結失效。
創建您的 hostsettings.json 文件,其中包含
urls帶有您的值的鍵{ urls: "http://*:5005" }在你的註冊 hostsettings.json
IConfigurationBuilderpublic class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) { var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false) .AddJsonFile("hostsettings.json", optional: true) .AddCommandLine(args) .Build(); return WebHost.CreateDefaultBuilder(args) .UseUrls("http://*:5000") .UseConfiguration(config) .UseStartup<Startup>(); } }