咨询区
ja73
在本地开发环境下,我知道可以通过修改 launchSettings.json
文件中的端口号来实现端口切换。
"WebApplication1": {"commandName": "Project","launchBrowser": true,"launchUrl": "weatherforecast","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"},"applicationUrl": "https://*:8081;http://*:8080"}
但是将程序发布之后,我发现它一直监听的是 5000 端口,请问我如何在 生产环境下做 port 的修改,我试了下 UseUrls
貌似不起效果。
public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureServices((hostContext, services) =>{services.AddHostedService<Worker>();}).UseWindowsService().ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>().UseUrls("http://*:8080","https://*:8081");}).UseSerilog();
回答区
ja73:
用 UseUrls
是可以的,只不过你把它的顺序弄反了,将 webBuilder.UseStartup<Startup>()
和 .UseUrls("http://*:8080","https://*:8081")
对调一下即可, 希望对你有用。
public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureServices((hostContext, services) =>{services.AddHostedService<Worker>();}).UseWindowsService().ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseUrls("https://*:8081", "http://*:8080");webBuilder.UseStartup<Startup>();}).UseSerilog();
}
Stephen LAI:
可以在程序启动的时候通过命令行 --urls
参数去配置,参考如下:
dotnet run --urls "http://localhost:5100;https://localhost:5101"
或者
dotnet /Product/Full/Path/Product.dll --urls "http://localhost:5100;https://localhost:5101"
当然你一定要操控 LaunchSettings.json
文件的话,也是可以实现的,配置 iisSettings
节点即可。
{"iisSettings": {"iisExpress": {"applicationUrl": "http://localhost:8080","sslPort": 96085<== Change_This as you wish}
}
点评区
其实修改 asp.net core 程序的默认端口的方法特别多,可以通过 配置文件
,硬编码
,命令行
,环境变量
等多种方式,我在项目开发中更多的使用 命令行方式
,毕竟是写到 dockerfile 中的,很方便。