Kestrel在哪里寻找要监听的端口?

时间:2018-07-27 09:52:56

标签: asp.net-core-2.0 kestrel-http-server

我有几个.NET Core应用程序,当我运行dotnet run时,它们决定侦听不同的端口(一个到5000,一个到5000和5001)。

我一直在寻找一些有关如何做出这些决定的全面文档,但是找不到我想要的东西。

Kestrel按优先顺序查找此设置的详尽位置是什么?

为简单起见,假设我使用默认的WebHostBuilder

public class Program
{
    public static void Main(string[] args)
    {
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build()
            .Run();
    }
}

1 个答案:

答案 0 :(得分:0)

根据Endpoint configuration下的文档

  

默认情况下,ASP.NET Core绑定到:

     
      
  • http://localhost:5000
  •   
  • https://localhost:5001(如果存在本地开发证书)
  •   
     

...

源代码也支持

/// <summary>
/// The endpoint Kestrel will bind to if nothing else is specified.
/// </summary>
public static readonly string DefaultServerAddress = "http://localhost:5000";

/// <summary>
/// The endpoint Kestrel will bind to if nothing else is specified and a default certificate is available.
/// </summary>
public static readonly string DefaultServerHttpsAddress = "https://localhost:5001";

内部AddressBinder使用哪个设置来设置默认情况下使用的主机和端口。