默认情况下,ASP. NET Core应用会监听一下2个Url:
在本篇博文中,我将展示如何使用五种不同的方式改变应用监听的URLs。
在ASP.NET Core项目启动时,有多种配置监听Url的方式,在我之前的一篇博客中,已经展示了在ASP.NET Core 1.0中如何应用不同的方式配置,在ASP.NET Core 3.x中,大部分方式还是一样的。
UseUrls()
- 在Program.cs配置程序监听的URLs- 环境变量 - 使用
DOTNET_URLS
或者ASPNETCORE_URLS
配置URLs - 命令行参数 - 当使用命令行启动应用时,使用
--urls
参数指定URLs - 使用
launchSettings.json
- 使用applicationUrl
属性来配置URLs KestrelServerOptions.Listen()
- 使用Listen()
方法手动配置Kestral
服务器监听的地址
下面我来详细说明一下每个一种方式。
哪些Url可以使用?
在本篇我描述是你可以绑定的"URLs", 但是你不能使用所有的URLs. 这里有三种你可以绑定的URLs
- IPV4和IPV6的主机名(例如
http://localhost:5000
). 这种URL的格式是{scheme}://{loopbackAddress}:{port}
- 在你机器上可用的指定IP地址(例如
http://192.168.8.31:5005
), 这种URL的格式是{scheme}://{IPAddress}:{port}
- 针对给定端口,使用"任何"IP地址(例如
http://*:6264
), 这种URL的格式是{scheme}://*:{port}
在以上说明的几种格式中,端口号也可以是选填的, 如果你忽略它,系统会使用默认端口(http使用80端口,https使用443端口)。
使用哪一种格式的URLs取决于你的部署方式。例如,如果你你将多个应用托管在同一台“裸机”中,你可能需要显示指定IP地址。但是如果你使用了容器托管,那么你可以使用localhost
作为地址。
注意,针对"任何"IP地址的格式 - 你不一定必须使用
*
,你可以使用任何字符,只要不是IP地址或者l