首页 > 解决方案 > 调用 UseUrls 时 0.0.0.0:1000 和 *:1000 有什么区别

问题描述

在 .NET Core 应用程序中,我正在使用: new WebHostBuilder().UseUrls("http://*:1234").

上面的代码和 之间的有效区别是什么new WebHostBuilder().UseUrls("http://0.0.0.0:1234")

标签: .netasp.net-core.net-core

解决方案


您可以在此处找到与 kestrel 相关的文档 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.1#url-prefixes

IPv4

0.0.0.0是绑定到所有 IPv4 地址的特殊情况。

IPV6

[::]是 IPv4 0.0.0.0 的 IPv6 等价物。

主机名

主机名 ,*+, 并不特殊。任何未被识别为有效 IP 地址或localhost绑定到所有 IPv4 和 IPv6 IP 的内容。要将不同的主机名绑定到同一端口上的不同 ASP.NET Core 应用程序,请使用 HTTP.sys 或反向代理服务器,例如 IIS、Nginx 或 Apache。

主机localhost

指定时localhost,Kestrel 会尝试绑定到 IPv4 和 IPv6 环回接口。如果请求的端口正被任一环回接口上的另一个服务使用,Kestrel 将无法启动。如果任一环回接口因任何其他原因不可用(最常见的原因是不支持 IPv6),Kestrel 会记录警告。


推荐阅读