url格式
- 主要有三种URL格式表达方式,可以查看官方文档(https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#url-prefixes)
- 格式1:
{scheme}://{loopbackAddress}:{port}
,例如http://localhost:5000/、https://localhost:5001/ - 格式2:
{scheme}://{IPAddress}:{port}
,例如http://127.0.0.1:5000/、https://192.168.1.100:5001/ - 格式3:
{scheme}://*:{port}
,例如http://*:5000/、https://domain.com:5001/
设置方法
设置ASPNETCORE_URLS 环境变量
- linux
# 环境变量仅在当前终端生效,关闭终端后需要重新设置
export ASPNETCORE_URLS="http://localhost:7000;https://localhost:7010"
- windows
# 环境变量仅在当前命令行窗口生效
set ASPNETCORE_URLS=http://localhost:7000;https://localhost:7010
# 将ASPNETCORE_URLS变量保存到用户环境变量中
setx ASPNETCORE_URLS "http://localhost:7000;https://localhost:7010"
# 加/m参数,将ASPNETCORE_URLS变量保存到系统环境变量中
setx ASPNETCORE_URLS "http://localhost:7000;https://localhost:7010" /m
# 运行AspNetCoreUrl程序
dotnet AspNetCoreUrl.dll
使用dotnet —urls 命令行参数
dotnet AspNetCoreUrl.dll --urls "http://localhost:7001;https://localhost:7011"
使用urls作为键进行配置
- 在生成程序的根目录下,打开appsettings.json文件,添加url配置项,然后双击AspNetCoreUrl.exe运行
{
"urls":"http://localhost:7002;http://localhost:7012"
}
使用UseUrls扩展方法
这种方法需要修改源代码,打开Program.cs文件,修改CreateHostBuilder方法内容,主要是添加UseUrls扩展方法然后生成程序。
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
// 使用UseUrls设置监听的端口和协议
webBuilder.UseUrls("http://localhost:7003", "https://localhost:7013");
});
- 注意:运行前需要将appsettings.json文件恢复到默认状态,即没有配置urls的状态,
否则配置文件中设置会覆蓋代码中的方法
总结
本文介绍了ASP.NET Core几种常用的设置URLs的方法,大家可以根据项目实际情况选择其中一种或几种,如果同时使用几种URLs设置方法,则需要留意配置的优先级问题,经过测试得出
Kestrel > 命令行 > 配置文件 > UseUrls > 环境变量 > 默认值