在 Program.cs
中编写了 UseUrls
,如下
return WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging) =>
{
logging.AddSerilog();
})
.UseStartup<Startup>()
.UseUrls("http://a.cn.com:5000")
.Build();
使用 命令行 dotnet run
结果却是监听 Now listening on: http://[::]:5000
请问为什么不是监听 http://a.cn.com:5000
PS:[::] is the IPv6 equivalent of IPv4 0.0.0.0.
在关于Kestrel 的官方说明文档中找到了答案,When you configure Kestrel to listen on a port, it handles all traffic for that port regardless of host header.
放上一张关于 ASP.NET Core Module 的图
任何版本的dotnet run都不可以让kestrel与主机名进行绑定,只能绑定IP地址
我在.NET-Core 1.2 的时候写UseUrls
,或者直接用命令行
输入--urls "http://a.cn.com:5000"
时,都是可以成功绑定的
附上.NET-Core 1.2
的命令行执行代码
@BUTTERAPPLE: 是我弄错了,.net core 1.2 的确可以